Проблемы настройки туннеля SSH для порта 80


0

Теперь, если я не ошибаюсь, SSH-туннель порта 80 к веб-серверу на порту 80 должен позволить моему порту 80 проходить через этот сервер, правильно? Однако, когда я настраиваю туннель и получаю доступ к веб-сайту, мой журнал все еще приходит с моего домашнего компьютера, а не с IP-адреса сервера. Есть идеи почему?

Я использую следующую команду, но все, что она делает - это просто SSH на хост в терминале:

ssh root@webserver -L 80:127.0.0.1:80

Я могу ошибаться, но я думаю, что вы хотите ssh -f root@webserver -L LOCALPORT:HOST:REMOTEPORT-N. -fдля ssh для перехода в фоновый режим, -Nговорит OpenSSH не выполнять команду в удаленной системе. Конечно, я надеюсь, что вы на самом деле не используете rootв качестве пользователя ...
nerdwaller

Спасибо, я сделаю это. Да, я использую root, потому что по какой-то глупой причине для настройки туннеля требуется su.
Питер

@ Райан: Я не думаю, что это «глупая» причина, я думаю, что это потому, что вы пытаетесь туннелировать защищенный системный порт (например, <1024), для которого вам нужны системные права.
Джулиан Найт

Ответы:


1

Просто попробовал это и подтвердил, что это работает:

ssh -ND 8080 username@domain.com

Корень требуется для привязки локального порта 80 на вашем компьютере, так как это зарезервированный порт (а 8080 является общим альтернативным). Чтобы пересылать только трафик вашего браузера, вы можете установить Firefox / Chrome / Wh независимо от использования прокси-сервера Socks «localhost» на «8080».

Попробуйте без рута, у меня работает на веб-сервере, к которому у меня нет root-доступа.


Ха, я должен был прочитать здесь, прежде чем добавить свой комментарий к самому вопросу.
Джулиан Найт

@JulianKnight Не беспокойся! Преимущества системы, основанной на сообществе - ничего плохого в том, чтобы повторить этот пункт (и расширить его, упомянув <1024, который я пропустил)
nerdwaller

0

Как только туннель настроен (с -L), вам нужно изменить используемый вами URL-адрес, например, http://127.0.0.1/или если имя сайта должно совпадать из-за настройки виртуального хостинга, вам нужно добавить это в файл hosts на вашем компьютере:

127.0.0.1    www.domain.com

Вы можете определить псевдоним на сервере vhost, чтобы вы могли использовать одно имя для 127.0.0.1, например «test.domain.com», и реальное имя для прямого перехода, если это когда-либо будет полезно - забыв удалить записи из файла hosts это хороший способ вызвать путаницу. Зависит от того, как работает сайт.

Для переадресации порта 80 вам нужен только root на рабочем столе, а не веб-сервер. Я настоятельно рекомендую не разрешать ssh вход в систему для root.

Использование непривилегированного порта может работать, опять же, в зависимости от вашего сайта:

ssh user@webserver -L 1080:127.0.0.1:80

и используйте URL http://127.0.0.1:1080/.

Использование SOCKS proxy ( -D) в соответствии с предложением может вызвать некоторые неожиданности в зависимости от конфигурации SOCKS / DNS / firewall / NAT.

(В linux в качестве альтернативы для root для зарезервированных портов вы можете использовать возможности POSIX, см. Https://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind -to-privileged-ports-1024-on-l , однако это не будет работать на стандартных версиях OpenSSH, так как он имеет дополнительную жестко NO_IPPORT_RESERVED_CONCEPTзаданную проверку номеров портов, если не скомпилировано с определенным. Ответы на связанный вопрос имеют различные другие решения для этого.)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.