SOCKS прокси на SSH сервере за HTTP прокси
Я настроил SOCKS прокси на порт 9090 для компьютера B в другом месте:
ssh -D localhost:9090 user@B
и настроил его в моем локальном браузере Google Chrome. Однако компьютер B находится за прокси-сервером HTTP, поэтому HTTP-запросы, поступающие локально, поступают на компьютер B через прокси-сервер SOCKS, но не могут быть адресованы (терминал, на котором запущен ssh -D localhost:9090 user@B показывает "open fail: connect fail: No "маршрут к хосту", когда такой запрос сделан).
Я пытался:
- настройка ОБА удаленного HTTP-прокси (за которым находится компьютер B) и SOCKS-прокси в Google Chrome,
- запуск ssh -D localhost:9090 user@B с правильно установленной переменной среды http_proxy,
- добавление http_proxy=_proxy_address_ к.bashrc пользователя на компьютере B;
но никто не работал.
Кто-нибудь знает, как настроить прокси-сервер SOCKS, чтобы учесть HTTP-прокси, за которым находится компьютер B? Любой метод, который не включает изменение SSHD или глобальной конфигурации на сервере, будет предпочтительным.
1 ответ
Вы бы гораздо лучше "перенаправили" прокси-сервер удаленной сети по SSH, а не использовали встроенный SOCKS-сервер (который просто ожидает сеть с адресацией через шлюз на другом конце).
ssh -L 8080:internal_ip_of_proxy:8080 user@ssh_server
Это предоставляет прокси-сервер локально, позволяя вам установить настройки прокси вашего браузера localhost:8080
и это будет туннелировать через SSH к удаленному прокси.
И вы можете применить это к любому удаленному сервису. Вы можете, например, туннелировать Imgur со своего сервера (в действительности прокси с одним хостом):
ssh -L 8080:imgur.com:80 user@ssh_host
И на местном терминале:
curl --header 'Host: imgur.com' localhost:8080
В противном случае требуется заголовок Host curl
запросит несуществующий localhost
сайт. Вы также можете обойти это, добавив строку в /etc/hosts
, решая imgur.com
в 127.0.0.1
... Но я не по теме, тебе ничего не нужно для твоих целей.