Конвертировать HTTP-запросы в SOCKS5

43

В настоящее время я занимаюсь тестированием с TOR и столкнулся с небольшой проблемой. Клиент Tor поддерживает только получение соединений по протоколу SOCKS5, но используемые мной приложения поддерживают только HTTP Proxy Protocals.

Можно ли поставить что-то посередине? Так что к примеру это пошло.

Моя программа (только HTTP)> Конвертер HTTP в SOCKS> Сервер Tor SOCKS5

Dustin
источник
Вы можете использовать ОС (например, Tails и Whonix), которая прозрачно направляет весь трафик через Tor без приложения, которое вообще не должно поддерживать прокси. Это также значительно снижает риск утечек DNS и других обходов Tor.
CodesInChaos

Ответы:

44

Похоже, что DeleGate может сделать это следующим образом (где DeleGate будет принимать HTTP-соединения через порт 8080 и пересылать на сервер SOCKS через порт 9050):

delegated -P8080 SERVER=http SOCKS=localhost:9050
mgorven
источник
@ Dboy1612: Можете ли вы рассказать о своем опыте с делегированным для этого случая использования. У меня также есть тот же вариант использования.
Pradeepchhetri
Это отличный инструмент. Новая версия (v9.9.9) выпущена недавно.
kev
1
Любая идея, почему он требует адрес электронной почты во время загрузки и установки?
Халил Озгюр
2
@pradeepchhetri Потратив день на игру delegate(d), я пришел к выводу, что абсолютно точно утечка DNS-запросов, несмотря на многочисленные противоположные утверждения в документации по конфигурации. Я хотел бы узнать, что я не прав в этом, но я пессимистичен в этом вопросе.
Адам Маклер
Прекрасно работает:)
кот
8

В комплекте Tor больше нет polipo, вот из официального FAQ по tor :

В прошлом пакеты Tor включали HTTP-прокси, такой как Privoxy или Polipo, исключительно для того, чтобы обойти ошибку в Firefox, которая была окончательно исправлена ​​в Firefox 6. Теперь вам не нужен отдельный HTTP-прокси для использования Tor, и фактически его оставляют. Out делает вас безопаснее, потому что Torbutton лучше контролирует взаимодействие Firefox с веб-сайтами.

Если вы пытаетесь использовать какое-то внешнее приложение с Tor, нулевым шагом должно быть перечитывание набора предупреждений о путях, которые вы можете испортить. Первым делом следует попытаться использовать прокси-сервер Socks вместо прокси-сервера http - Tor запускает прокси-сервер Socks на порту 9050 в Windows или см. Выше для OSX и Linux.

Если это не помогло , не стесняйтесь установить privoxy . Тем не менее, имейте в виду, что этот подход не рекомендуется для начинающих пользователей. Privoxy имеет пример конфигурации Tor и Privoxy .

Стефан Рогин
источник
1
У меня сработало tnx!
Хикари
6

Вы также можете использовать Privoxy . Добавьте эту строку в свой config.txtфайл:

forward-socks5 / 127.0.0.1:9050 .

(Не забудьте маленькую точку в конце.)

Затем используйте HTTP или HTTPS прокси на 127.0.0.1:8118

гость
источник
удивительный и простой способ. благодарю вас. работает как шарм
Ирадж Джелодари
5

Вы не указали операционную систему. Пожалуйста, сделайте это в будущем.


В этом ответе рекомендуется Polipo, который входит в комплект Vidalia, размещенный в проекте Tor, и поэтому, вероятно, рекомендуется для Windows. Polipo также имеет версию * nix (и изначально была разработана для * nix), поэтому я включил инструкции по ее настройке - см. Второй раздел ниже. Это довольно легкое решение, если оно имеет значение.


Windows

Загрузите комплект Vidalia. Он включает графический интерфейс Vidalia и программу под названием Polipo, а также Tor. В комплекте Polipo по умолчанию запускает прокси-сервер HTTP на порт 8118, который перенаправляет через прокси-сервер Tor SOCKS на порт 9050.

Дополнительные настройки

Также можно настроить Polipo вручную, без комплекта Vidalia.

Взято с http://www.pps.jussieu.fr/~jch/software/polipo/tor.html.

Они также предоставляют двоичные файлы, которые вы должны загрузить.

конфигурация

Polipo настраивается путем установки нескольких переменных конфигурации в файле конфигурации Polipo, который представляет собой простой текстовый файл. Чтобы указать Polipo использовать tor, а не кэшировать какие-либо извлеченные страницы на диске, вам нужно добавить следующие строки в файл конфигурации:

socksParentProxy = localhost:9050
diskCacheRoot=""

Вы также захотите отключить локальный интерфейс конфигурации, чтобы защитить себя от уязвимостей браузера:

disableLocalInterface=true

Запуск это

При запуске Polipo вы должны указать расположение файла конфигурации, используя флаг -c в командной строке Polipo:

> polipo.exe -c "/Program Files/Polipo/config.txt"

Обратите внимание, что даже в Windows вы должны использовать синтаксис Unix для имени файла (используя косую черту), и вы не можете указать устройство («диск») для использования.

Порт прослушивания Polipo по умолчанию - 8123.

Конфигурация по умолчанию из комплекта Vidalia включена в нижней части этого ответа.


* Никс

Включает Linux, Unix, BSD, OS X, большинство основных современных (2012) операционных систем, которые не основаны на NT (Windows).

Еще раз взято с http://www.pps.jussieu.fr/~jch/software/polipo/tor.html

Загрузите пакет из любого репозитория, который вы используете. Google может помочь здесь. Кроме того, прямой двоичный файл может быть загружен.

конфигурация

Polipo настраивается путем установки ряда конфигурационных переменных в файле конфигурации Polipo в, который является либо ~/.polipoили /etc/polipo/config, в зависимости от того существует. Чтобы указать Polipo использовать tor, а не кэшировать какие-либо извлеченные страницы на диске, вам нужно добавить следующие строки в файл конфигурации:

socksParentProxy = localhost:9050
diskCacheRoot=""

Вы также захотите отключить локальный интерфейс конфигурации, чтобы защитить себя от уязвимостей браузера:

disableLocalInterface=true

Если вы хотите указать другое местоположение для файла конфигурации, вы можете указать его, используя флаг -c в командной строке Polipo.

Обратите внимание, что если вы установили Polipo из предоставленного дистрибутива двоичного файла, он, вероятно, не будет учитывать ~ / .polipo - вам нужно отредактировать / etc / polipo / config.

Запуск это

Если вы установили Polipo из предоставленного дистрибутива, вероятно, Polipo уже запущен; Вам нужно будет перезапустить его, чтобы он принял во внимание его новую конфигурацию. В противном случае просто возьмите бесплатное окно терминала и введите:

$ polipo

Если вы используете нестандартное расположение для файла конфигурации Polipo, укажите его в командной строке, например:

$ polipo -c "/Program Files/Polipo/config.txt"

Порт прослушивания Polipo по умолчанию - 8123.

Конфигурация по умолчанию из комплекта Vidalia включена в нижней части этого ответа.


Конфигурация Polipo по умолчанию (комплект Vidalia)

Это моя конфигурация Polipo по умолчанию из комплекта Vidalia для Windows. Судя по всему, он должен работать и в * nix - насколько я могу судить, нет ничего конкретного для платформы. Да, это конфиг IPv4.

### $Id$
#
### Basic configuration
### *******************

# Uncomment one of these if you want to allow remote clients to
# connect:

# proxyAddress = "::0"        # both IPv4 and IPv6
# proxyAddress = "0.0.0.0"    # IPv4 only

proxyAddress = "127.0.0.1"
proxyPort = 8118

# If you do that, you'll want to restrict the set of hosts allowed to
# connect:

# allowedClients = "127.0.0.1, 134.157.168.57"
# allowedClients = "127.0.0.1, 134.157.168.0/24"

allowedClients = 127.0.0.1
allowedPorts = 1-65535

# Uncomment this if you want your Polipo to identify itself by
# something else than the host name:

proxyName = "localhost"

# Uncomment this if there's only one user using this instance of Polipo:

cacheIsShared = false

# Uncomment this if you want to use a parent proxy:

# parentProxy = "squid.example.org:3128"

# Uncomment this if you want to use a parent SOCKS proxy:

socksParentProxy = "localhost:9050"
socksProxyType = socks5


### Memory
### ******

# Uncomment this if you want Polipo to use a ridiculously small amount
# of memory (a hundred C-64 worth or so):

# chunkHighMark = 819200
# objectHighMark = 128

# Uncomment this if you've got plenty of memory:

# chunkHighMark = 50331648
# objectHighMark = 16384

chunkHighMark = 33554432

### On-disk data
### ************

# Uncomment this if you want to disable the on-disk cache:

diskCacheRoot = ""

# Uncomment this if you want to put the on-disk cache in a
# non-standard location:

# diskCacheRoot = "~/.polipo-cache/"

# Uncomment this if you want to disable the local web server:

localDocumentRoot = ""

# Uncomment this if you want to enable the pages under /polipo/index?
# and /polipo/servers?.  This is a serious privacy leak if your proxy
# is shared.

# disableIndexing = false
# disableServersList = false

disableLocalInterface = true
disableConfiguration = true

### Domain Name System
### ******************

# Uncomment this if you want to contact IPv4 hosts only (and make DNS
# queries somewhat faster):
#
# dnsQueryIPv6 = no

# Uncomment this if you want Polipo to prefer IPv4 to IPv6 for
# double-stack hosts:
#
# dnsQueryIPv6 = reluctantly

# Uncomment this to disable Polipo's DNS resolver and use the system's
# default resolver instead.  If you do that, Polipo will freeze during
# every DNS query:

dnsUseGethostbyname = yes


### HTTP
### ****

# Uncomment this if you want to enable detection of proxy loops.
# This will cause your hostname (or whatever you put into proxyName
# above) to be included in every request:

disableVia = true

# Uncomment this if you want to slightly reduce the amount of
# information that you leak about yourself:

# censoredHeaders = from, accept-language
# censorReferer = maybe

censoredHeaders = from,accept-language,x-pad,link
censorReferer = maybe

# Uncomment this if you're paranoid.  This will break a lot of sites,
# though:

# censoredHeaders = set-cookie, cookie, cookie2, from, accept-language
# censorReferer = true

# Uncomment this if you want to use Poor Man's Multiplexing; increase
# the sizes if you're on a fast line.  They should each amount to a few
# seconds' worth of transfer; if pmmSize is small, you'll want
# pmmFirstSize to be larger.

# Note that PMM is somewhat unreliable.

# pmmFirstSize = 16384
# pmmSize = 8192

# Uncomment this if your user-agent does something reasonable with
# Warning headers (most don't):

# relaxTransparency = maybe

# Uncomment this if you never want to revalidate instances for which
# data is available (this is not a good idea):

# relaxTransparency = yes

# Uncomment this if you have no network:

# proxyOffline = yes

# Uncomment this if you want to avoid revalidating instances with a
# Vary header (this is not a good idea):

# mindlesslyCacheVary = true

# Suggestions from Incognito configuration
maxConnectionAge = 5m
maxConnectionRequests = 120
serverMaxSlots = 8
serverSlots = 2
tunnelAllowedPorts = 1-65535
боб
источник
Я использую Polipo на Mac OS X 10.6. Кажется, иногда возникают проблемы при выполнении запросов POST. Официальный сайт полипо здесь и здесь .
Сиу Чинг Понг-Асука Кэндзи -
Я также использую 3proxy на Windows. Я использую его, чтобы превратить мой SSH-туннель (SOCKS5) в HTTP-прокси для программ, которые не поддерживают SOCKS. 3proxy разработан россиянами. Это с открытым исходным кодом. Официальный сайт находится здесь, а его проект SourceForge здесь (не так обновлен, как официальный сайт).
Сиу Чинг Понг - Асука Кэндзи -
2

Fiddler также позволяет преобразовывать HTTP-запрос в туннельный запрос socks.

Я сделал это, чтобы заставить некоторые обновления Windows запускаться через соединение socks (через Amazon EC2 и Putty).

С этой страницы https://groups.google.com/forum/#!topic/httpfiddler/6m2xEe0fRmw

В Fiddler есть вкладка «FiddlerScript», где вы можете добавить следующее:

Используя X-OverrideGatewayфлаг, используйте socks=префикс, чтобы указать, что> Fiddler должен использовать протокол SOCKS v4a при обращении к вышестоящему серверу.

Например, установщик TOR устанавливает точку входа в сеть TOR, используя прокси-сервер SOCKS на порту 9150, который называется Polipo. Вы можете добавить следующее в ваш OnBeforeRequestметод FiddlerScript, чтобы направить любой запрос на test.example.com через сеть TOR:

    if (oSession.HostnameIs("test.example.com")) {
      oSession["x-OverrideGateway"] = "socks=127.0.0.1:9150";    
  }

Если вместо этого вы предпочитаете отправлять весь трафик через SOCKS, вы можете просто установить X-OverrideGatewayфлаг безоговорочно для каждого сеанса.

Дэвид д С е Фрейтас
источник
0

WinGate также может сделать это. Проверьте вкладку Connection на вашем WWW-прокси, и вы можете выбрать восходящий SOCKS4, SOCKS4a или HTTP-прокси.

WinGate также имеет бесплатную лицензию для 10 одновременно работающих пользователей.

Вкладка WWW Proxy Connection

Отказ от ответственности: я работаю на Qbik, которые являются авторами WinGate

Adrien
источник