Чтобы сделать именно то , что вы просили (B:1234=>C:2345
), это должно быть запущено на B
:
# Not recommended. Read along.
ssh -NgL 1.2.3.4:1234:localhost:2345 10.0.0.3
Это также требует открытия порта 1234
в брандмауэре B
Затем подключитесь к 1.2.3.4:1234
извне, чтобы перейти к 10.0.0.3:2345
как если бы вы подключались от самого C
(через его петлевой интерфейс). Любой может подключиться, так что имейте это в виду, если сервер на C
(каким бы он ни был) не защищен паролем или нет.
Более простой и безопасный способ добраться от A
до C
заключается в следующем. Это не делает именно то, что вы просили, но, вероятно, это то, что вы хотите. На A
:
ssh -NL 1234:10.0.0.3:2345 1.2.3.4
Затем подключитесь к 127.0.0.1:1234
на A
чтобы получить доступ к порту 2345
на C
C
увидит трафик, поступающий из B
Это соединение доступно только для A
, поэтому метод более безопасен, чем предыдущий.
Если вы хотите разрешить подключение другим компьютерам (скажем, из локальной сети, где находится A
), вы должны использовать опцию -g
и указать адрес привязки. Например:
ssh -NgL A_LAN_address_here:1234:10.0.0.3:2345 1.2.3.4
В этом случае переконфигурируйте брандмауэр на A
соответственно, затем подключитесь к A_LAN_address_here:1234
.