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


0

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

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

ssh [email protected] -L 80:127.0.0.1:80

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

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

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

Ответы:


1

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

ssh -ND 8080 [email protected]

Корень требуется для привязки локального порта 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 [email protected] -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.