Вам необходимо добавить параметр -g
в командную строку ssh:
-g Allows remote hosts to connect to local forwarded ports.
If used on a multiplexed connection, then this option
must be specified on the master process.
Это откроет перенаправленные порты на хосте B
, чтобы они доступен из C
. Это предполагает, что ваша конфигурация брандмауэра на B
разрешает эти соединения.
Опция -g
изменяет локальный адрес привязки, который ssh
использует для локального порта. Без -g
-L 8000:localhost:8000
приводит к:
$ netstat -tln | grep 8000
tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN
tcp6 0 0 ::1:8000 :::* LISTEN
Как видите, в данном случае оба сокета привязаны к петлевому адресу(127.0.0.1
для ipv4 и ::1
для ipv6 ).
Вместо -g
мы получаем:
$ netstat -tln | grep 8000
tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN
tcp6 0 0 :::8000 :::* LISTEN
В этом случае вы можете видеть, что ssh
теперь привязывается к подстановочному адресу, а не к петлевому адресу.