Просмотр через ssh socks proxy -> через обратный туннель
У меня есть HostA за брандмауэром, устанавливающим обратный туннель SSH к HostB. Я хочу настроить прокси на HostB, который будет пересылать соединение через обратный туннель SSH и выход через HostA.
Я пробовал ssh -D 5678 user@localhost -p 1234, но при попытке подключения к HostB через порт 5678 в качестве прокси-сервера soks время ожидания истекло. 1234 - это порт на HostB, где обратный прокси-сервер настроен на HostA. У кого-нибудь есть совет по настройке этого?
Обратный прокси-сервер настроен на HostA как ssh -R 1234:localhost:22 user@HostB
2 ответа
Я проверил это на моих системах и не было никаких проблем.
Хост:
$ ssh -R 1234:localhost:22 user@hostb
hostB:
$ ssh -p 1234 localhost -D 5678
hostB:
$ curl http://portquiz.net Port 80 test successful! Your IP: 66.77.88.159 $ curl --socks5 localhost:5678 http://portquiz.net Port 80 test successful! Your IP: 23.31.31.35
Команда curl работает? Если это так, в Firefox вы захотите установить HTTP Proxy: localhost
Port: 5678
и проверить Use this proxy server for all protocols
,
Если команда curl не работает, я бы проверил iptables
а также selinux
не мешают. Для устранения неполадок, я бы порекомендовал отключить iptables
а также selinux
на обоих хостах. Это только временно и не должно рассматриваться как постоянное решение.
HostA$ ssh -R 1080 user@HostB
HostB$ curl --socks5 localhost https://example.com
Из OpenSSH 7.6
ssh (1): добавлена поддержка обратной динамической пересылки. В этом режиме ssh будет выступать в качестве прокси-сервера SOCKS4 / 5 и переадресовывать соединения на пункты назначения, запрошенные удаленным клиентом SOCKS. Этот режим запрашивается с использованием расширенного синтаксиса для параметров -R и RemoteForward и, поскольку он реализован исключительно на клиенте, не требует обновления сервера для поддержки.
Источник: примечания к выпуску OpenSSH 7.6