У меня следующая ситуация: Есть некоторые хосты, которые доступны только через туннель ssh. Скажем так
Я могу установить SSH-туннель и привязать 443 порта, необходимые для подключения к локальным портам:
ssh -L 1443:example.com:443 -L 2443:other.com:443 -A -l username myproxy.com
Пока это работает нормально - когда я звоню https://localhost:1443
, я могу открыть example.com, если я звоню https://localhost:2443
, я могу позвонить other.com
Проблема: есть некоторые приложения, которые не знают об этом и все еще пытаются подключиться через обычное имя хоста и порт.
Добавив следующие строки в мой hosts
файл, я смогу приблизиться к окончательному решению:
127.0.0.1 example.com
127.0.0.1 other.com
Это позволяет мне звонить https://example.com:1443
и https://other.com:2443
в моем браузере - но порт все еще проблема. Мне нужно сопоставить ОБА домены с моим локальным портом, 443
чтобы он работал для других приложений.
Я думаю , мне нужно будет иметь локальный прокси - сервер прослушивает порт 443
и переадресации трафика на основе хоста либо 1443
или , 2443
но это, где я потерял.
Что я могу сделать, чтобы все приложения на моей машине могли просто использовать имя хоста / порт, но пропускать трафик через мой SSH-туннель?
источник
Ответы:
Используйте
ssh -D
. Это создаст прокси-сервер SOCKS 5 на указанном порту (обычно 1080 или 9050), который вы можете настроить в браузере и получить доступ ко всему через туннель SSH.Это работает одинаково с OpenSSH, PuTTY (plink), Bitvise Tunnelier; и не зависит от каких-либо функций на уровне операционной системы.
Например,
ssh -D 9050
запустив, вы можете настроить Firefox следующим образом:( Вместо Chrome может потребоваться опция командной строки .)
источник