Как настроить локальный прокси-сервер 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

Этот ответ был написан из Франции, но переправлен через Швецию:)

Другие вопросы по тегам