Как только туннель настроен (с -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
заданную проверку номеров портов, если не скомпилировано с определенным. Ответы на связанный вопрос имеют различные другие решения для этого.)
ssh -f root@webserver -L LOCALPORT:HOST:REMOTEPORT-N
.-f
для ssh для перехода в фоновый режим,-N
говорит OpenSSH не выполнять команду в удаленной системе. Конечно, я надеюсь, что вы на самом деле не используетеroot
в качестве пользователя ...