Переадресация порта SSH с помощью PuTTy - как указать адрес привязки

16

Используя Putty, я настроил обратный прокси-сервер, который позволяет мне подключаться через порт 8080 сервера server.tldк порту 80 компьютера, который инициировал соединение SSH.

Сервер позволяет мне подключиться localhost:8080и возвращает результат, initiator:80когда я подключаюсь к серверу.

Этот вопрос говорит о том, чтобы включить GatewayPorts и привязать ко всем адресам.

Используя Putty, как я могу открыть порт 8080 на сервере, чтобы при поступлении запроса через внешний интерфейс (например, веб-запрос) порт был перенаправлен на initiator:80?

введите описание изображения здесь

Darbio
источник
Можете ли вы подробно описать, что вы помещаете в диалог PuTTY для создания туннеля?
EightBitTony
Добавлен скриншот - порты отличаются от текста примера, однако это не позволяет запросу на внешний интерфейс маршрутизировать через туннель (например, 1.2.3.4:8080). Внутренние запросы маршрутизируются (localhost: 8080).
Дарбио
Что делает netstat -an | grep 8080 показать? И когда вы говорите, что не позволяете, что вы имеете в виду? Есть ли у вас брандмауэр, блокирующий подключения к порту 8080?
EightBitTony

Ответы:

17

Есть два флажка при настройке туннеля PuTTY,

  • Локальные порты принимают соединения от других хостов
  • Удаленные порты делают то же самое (только SSH-2)

второй из них делает то, что вам нужно.

Я только что проверил это,

Диалог туннелей PuTTY,

  • Отметьте Удаленные порты ...
  • Поместите 8080 в порт источника
  • Поместите 127.0.0.1:80 в порт назначения
  • Выберите переключатель «Удаленный»
  • Нажмите Добавить
  • Connect

Работает нормально, вот результирующий netstat,

# netstat -an | grep 8080
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN
tcp6       0      0 :::8080                 :::*                    LISTEN

Вы также можете использовать plink.exe, который поставляется с PuTTY, например,

plink -R *:8080:localhost:80 user@remote.host.example

который работает хорошо, а также.

# netstat -an | grep 8080
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN
tcp6       0      0 :::8080                 :::*                    LISTEN

Если вы все еще получаете 127.0.0.1:8080 на хосте, то GatewayPorts все еще имеет значение no в вашей конфигурации sshd.

Также не забудьте обновить брандмауэр на целевом сервере, чтобы разрешить внешние подключения к порту 8080.

EightBitTony
источник
Нет - мне кажется, это не так, как ssh -R *:8080:localhost:80должно?
Дарбио
GatewayPorts установлен на да. Это работает с ssh -R \*:8080:localhost:80командой, просто не могу понять это в PuTTy
Дарбио
@Darbio ты когда-нибудь разбирался в замазке?
бароп
Я часто использую переадресацию портов, обычно на local2remote (vnc, proxy и т. Д.), И на этот раз не работал порт remote2local, независимо от того, какую опцию я проверил, порт не отображается как открытый на удаленном компьютере. plinkНепосредственное использование работало без проблем, используя те же команды, что и обычный ssh. Я не мог понять, что замазка заставила это не работать ...
m3nda