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

Как использовать ssh-пересылку?

У меня есть сервер Linux, который открывает только два порта для публики:

remote-server-ip : 1111
remote-server-ip : 2222

У нас есть веб-приложение на сервере, которое использует 3333 порт и не может быть изменен.

Итак, вкратце, что мне нужно:

  1. В общедоступной сети используйте браузер, посетите http://remote-server:1111 или http://remote-server:2222.
  2. Удаленный сервер получает доступ к моему запросу и перенаправляет мой запрос в порт 3333.
  3. Ответьте на мою просьбу.

Я думал, что переадресация ssh должна сделать это. Но что именно я должен сделать, чтобы это сделать?

Я пробовал это на удаленном сервере:

ssh -N -L 1111:127.0.0.1:3333 127.0.0.1

Но вообще не работает, ничего не вышло.

Это больше похоже на необходимость в локальном прокси.

Решение, которое я использую, основано на Apache httpd. Внешне доступен только порт 80, но внутреннее веб-приложение прослушивает порт 8080. Если вы можете настроить apache со следующей конфигурацией, он должен работать:

Listen 1111

ProxyRequests Off

<Proxy *>
    Order deny,allow
    Allow from all
</Proxy>


<VirtualHost *>
    Servername localhost
    ProxyPass   /   http://localhost:3333/
    ProxyPassReverse   /   http://localhost:3333/
</VirtualHost>

Чего вы ожидали?

Тем не менее, вы отправили ssh с удаленного сервера на удаленный сервер при перенаправлении портов на удаленном сервере, что, хотя и будет работать, может не дать ожидаемых результатов. Пытаться:

desktop% ssh -N -L 26622:localhost:3333 remote.server.address

а затем доступ localhost:26622 с рабочего стола; который должен подключить вас к remote.server: 3333.

редактировать: перенаправление ssh работает не так, и не для этого. Вам нужно поговорить с системным администратором, который поддерживает брандмауэр на удаленном сервере, если вы хотите открыть порт для входящего Интернета. Кроме того, я боюсь, что вопросы о нарушении требований безопасности обычно считаются не относящимися к теме сбоя сервера.