1

У меня есть 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

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

2 ответа2

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 чтобы получить доступ к порту 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 .

0

На 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 .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .