На каком сервере мне следует выполнить команду переадресации порта ssh?

На каком сервере мне следует выполнить команду переадресации порта ssh?

У меня есть Macbook A, публичный сервер B(public IP: 1.2.3.4, internal IP: 10.0.0.2), внутренний сервер.C(internal IP: 10.0.0.3)

Aможет подключаться Bпо публичному IP B и Bможет подключаться Cпо частному IP C, но Aне может напрямую подключаться кC

Теперь я хочу подключиться к C:2345из A, поэтому я думаю, что могу сделать переадресацию портов в B:1234=>C:2345?

Какую команду мне следует выполнить и на каком сервере?

Я пытался:

ssh -NfR 1234:localhost:2345 10.0.0.3
ssh -L 1234:0.0.0.0:2345 10.0.0.3

Ни то, ни другое не работает.

решение1

Делатьточното, что вы просили ( 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порт . увидите трафик, входящий из . Это соединение доступно только для , поэтому этот метод намного безопаснее предыдущего.2345CCBA

Если вы хотите разрешить Aподключение другим компьютерам (например, из локальной сети), вам следует использовать -gопцию и указать адрес привязки. Например:

ssh -NgL A_LAN_address_here:1234:10.0.0.3:2345 1.2.3.4

В этом случае перенастройте брандмауэр Aсоответствующим образом, затем подключитесь к A_LAN_address_here:1234.

решение2

На Mac сначала нужно сделать следующее:

ssh -L2345:10.0.0.3:2345 10.0.0.2

Это открывает локальный порт 2345 на вашем Mac, который является прямым подключением к :2345 на 10.0.0.3

Затем вы просто получаете доступ 127.0.0.1:2345на своем Mac. Все, что идет на этот порт, будет туннелироваться через ssh и попадать на 10.0.0.3:2345. Для этого сервера это будет выглядеть как идущее с 10.0.0.2.

Связанный контент