У меня есть сервер Linux, который открывает только два порта для публики:
remote-server-ip : 1111
remote-server-ip : 2222
У нас есть веб-приложение на сервере, которое использует 3333
порт и не может быть изменен.
Итак, вкратце, что мне нужно:
http://remote-server:1111
или http://remote-server:2222
.3333
.Я думал, что переадресация 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 работает не так, и не для этого. Вам нужно поговорить с системным администратором, который поддерживает брандмауэр на удаленном сервере, если вы хотите открыть порт для входящего Интернета. Кроме того, я боюсь, что вопросы о нарушении требований безопасности обычно считаются не относящимися к теме сбоя сервера.