Назад | Перейти на главную страницу

SSH Reverse Port Forwarding с PuTTy - как указать адрес привязки

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

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

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

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

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

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

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

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

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

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

Работает нормально, вот итоговый 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 в вашей конфигурации sshd по-прежнему установлено значение no.

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