Т.Л., др? Используйте ssh -g …
.
Я предполагаю, что команда, которую вы используете, похожа
ssh -L 1234:server:5678 ssh_server
Это будет прослушивать 127.0.0.1:1234
(IPv4) и [::1]:1234
(IPv6) на локальной стороне. Локальные подключения к любому из этих адресов будут осуществляться server:5678
с ssh_server
. Другие компьютеры в вашей локальной сети не могут достичь туннеля, потому 127.0.0.1
и [::1]
являются петлевыми адресами; под любой машиной подразумевается сама машина.
Чтобы сделать ваш туннель доступным для других компьютеров, свяжите его с адресом, который они могут достичь. Допустим, 192.168.0.14
это действительный адрес клиента, который работает ssh
; привязать к нему:
ssh -L 192.168.0.14:1234:server:5678 ssh_server
или по всем доступным адресам (выберите одну команду):
ssh -L 0.0.0.0:1234:server:5678 ssh_server # IPv4 ssh -L [::]:1234:server:5678 ssh_server # IPv6 ssh -L 0.0.0.0:1234:server:5678 -L [::]:1234:server:5678 ssh_server # IPv4 and IPv6
Последний самый «открытый» туннель также может быть создан с -g
. От man 1 ssh
:
-g
Позволяет удаленным хостам подключаться к локальным перенаправленным портам.
-g
эквивалентно -o GatewayPorts=yes
и GatewayPorts yes
настройки в ssh_config
файле. Этот отрывок man 5 ssh_config
объясняет это еще лучше:
GatewayPorts
Указывает, разрешено ли удаленным хостам подключаться к локальным перенаправленным портам. По умолчаниюssh(1)
связывает перенаправления локальных портов с адресом обратной связи. Это предотвращает подключение других удаленных хостов к перенаправленным портам. GatewayPorts можно использовать для указания того, чтоssh
следует связывать переадресацию локальных портов с подстановочным адресом, что позволяет удаленным хостам подключаться к перенаправленным портам. Аргумент должен бытьyes
илиno
. По умолчанию этоno
.
Так:
ssh -g -L 1234:server:5678 ssh_server
Заметки:
- Не забудьте открыть выбранный порт в брандмауэре.
- Вы можете найти
autossh
полезное ... - ... вместе с
ExitOnForwardFailure
опциейssh
(объясняется вman 5 ssh_config
). - Обычно HTTP-сервер может отклонять URL-адреса, которые он не считает своими собственными. Вы сказали,
localhost:port
работает в вашем браузере. Если URL-адреса, такие какhttp://192.168.0.14:1234
не работают, несмотря на туннель, проверьте настройку сервера.
Дополнительные ресурсы: