Как настроить локальный прокси-сервер 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
Этот ответ был написан из Франции, но переправлен через Швецию:)