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

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

ssh root@webserver -L 80:127.0.0.1:80

2 ответа2

1

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

ssh -ND 8080 username@domain.com

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

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

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 (-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 . Ответы на связанный вопрос имеют различные другие решения для этого.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .