Предположим, у меня есть доступ к SSH-серверу, который поддерживает туннелирование, и я нахожусь на ПК с запущенной * ubuntu, как мне настроить локальный SOCKS-прокси, который туннелирует трафик через этот SSH-сервер, прежде чем попасть в Интернет?
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
Этот ответ был написан из Франции, но переправлен через Швецию :)
-D
и на-p
часть.ssh -D 1337 user@host