Как настроить локальный прокси-сервер SOCKS, который туннелирует трафик через SSH?
Предположим, у меня есть доступ к SSH-серверу, который поддерживает туннелирование, и я нахожусь на ПК с запущенной *ubuntu, как мне настроить локальный прокси-сервер SOCKS, который туннелирует трафик через этот SSH-сервер, прежде чем попасть в Интернет?
1 ответ
ssh бинарный файл, который вы используете при подключении к серверу ssh, поддерживает запуск прокси-сервера SOCKS из коробки, с -D флаг. Пример:
ssh -D 1337 -f -C -q -N user@remote -p 22
-D 1337говоритsshзапустить сервер SOCKS на порту 1337 локально.-fразветвляет процесс на задний план.-CВключает сжатие.-qвключает "Тихий режим", поскольку цель здесь только в туннелировании, нас не волнует вывод ошибок и тому подобное.-Nговоритsshчто никакие команды не будут отправлены (-fжалуется, если мы не укажем это).-pуказывает, какой порт использовать; очевидно, это значение по умолчанию равно 22, поэтому приведенное выше утверждение не имеет смысла, но включено для ясности.
Когда ваш сервер SOCKS запущен и работает, вам просто нужно убедиться, что ваше приложение (обычно веб-браузер) пытается подключиться к локальному прокси-серверу SOCKS, а не к обычному Интернету.
В Firefox 29 (поясняется здесь в качестве примера) это достигается путем перехода в меню (три сосиски в правом верхнем углу), а затем "Предпочтения"> "Дополнительно"> "Сеть"> "Соединение"> "Настройки"... - убедитесь, что вы только заполните поле НОСКИ! Поскольку ваш прокси находится в той же системе, вы можете использовать localhost или же 127.0.0.1 указать на любой порт, который вы установили на той же системе.
Если вам нужно, чтобы ваши DNS-запросы также были туннелированы (в противном случае ваши DNS-запросы покажут, какие веб-сайты вы пытаетесь посетить), вы можете просто проверить "Удаленный DNS" или выполнить всю эту конфигурацию в about:config, В последнем случае откройте его и установите эти значения:
network.proxy.socks : 127.0.0.1
network.proxy.socks_port : 1337
network.proxy.socks.remote_dns : true
network.proxy.socks_version : 5
network.proxy.type : 1
Вам также может понадобиться этот параметр, чтобы исключить определенные домены или сайты из туннелирования:
network.proxy.no_proxies_on : localhost, 127.0.0.1, 192.168.0.0/24, .yourcompany.com
Этот ответ был написан из Франции, но переправлен через Швецию:)