Перетворення HTTP-запитів у SOCKS5


46

Наразі я виконую тестову роботу з TOR і зіткнувся з невеликою проблемою. Клієнт Tor підтримує лише отримання з'єднань через протокол SOCKS5, але програми, які я використовую, підтримують лише протоколи HTTP Proxy.

Чи можна щось поставити в середину? Так що, наприклад, пішло.

Моя програма (лише HTTP)> Конвертер HTTP в SOCKS> Tor SOCKS5 Server


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

Відповіді:


44

Схоже, DeleGate може це зробити, щось подібне (де DeleGate буде приймати з'єднання HTTP на порт 8080 і пересилати до сервера SOCKS на порт 9050):

delegated -P8080 SERVER=http SOCKS=localhost:9050

@ Dboy1612: Чи можете ви розповісти про свій досвід роботи з делегованим для цього випадку використання. У мене теж є кейс використання.
pradeepchhetri

Це чудовий інструмент. Нещодавно вийшла нова версія (v9.9.9).
кев

1
Будь-яка ідея, чому їй потрібна адреса електронної пошти під час завантаження І встановлення?
Halil Özgür

2
@pradeepchhetri Провівши день із грою delegate(d), я прийшов до висновку, що він абсолютно налаштований на витік DNS-запитів, незважаючи на кілька протилежних тверджень в документації по конфігурації. Мені б хотілося виявити, що я помиляюся в цьому, але я песимістичний з цього приводу.
Адам Маклер

Чудово працює
кіт

9

Tor пакет не має поліпо, ось від офіційного запитання про tor :

Раніше пакети Tor включали HTTP-проксі, наприклад Privoxy або Polipo, виключно для усунення помилки у Firefox, що було остаточно виправлено у Firefox 6. Тепер для використання Tor вам не потрібен окремий проксі HTTP, а фактично залишаючи його Це робить вас більш безпечними, оскільки Torbutton має кращий контроль над взаємодією Firefox з веб-сайтами.

Якщо ви намагаєтесь скористатися якоюсь зовнішньою програмою разом із Tor, нульовим кроком має бути перечитати набір попереджень для способів викрутити. Першим кроком слід намагатися використовувати проксі-сервер Socks, а не http-проксі - Tor запускає проксі-сервер Socks на порт 9050 в Windows, або дивіться вище для OSX та Linux.

Якщо це не вдається, сміливо встановлюйте privoxy . Однак врахуйте, що такий підхід не рекомендується для початківців користувачів. Privoxy має приклад конфігурації Tor і Privoxy .


1
Це працювало для мене tnx!
Хікарі

7

Ви також можете використовувати Privoxy . Додайте цей рядок до свого config.txtфайлу:

forward-socks5 / 127.0.0.1:9050 .

(Не забудьте маленьку крапку в кінці.)

Потім використовуйте HTTP або HTTPS проксі на 127.0.0.1:8118


дивовижний і простий спосіб. Дякую тобі. працює як шарм
iraj jelodari

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 використовувати 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або /etc/polipo/config, залежно від того, що існує. Для того, щоб сказати Polipo використовувати tor і не кешувати жодні зібрані сторінки на диску, вам потрібно буде додати наступні рядки до вашого конфігураційного файлу:

socksParentProxy = localhost:9050
diskCacheRoot=""

Ви також захочете відключити локальний інтерфейс конфігурації, щоб убезпечити себе від уразливості браузера:

disableLocalInterface=true

Якщо ви хочете вказати інше місце для файла конфігурації, ви можете вказати його, використовуючи прапор -c у командному рядку Поліпо.

Зауважте, що якщо ви встановили 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-запити. Офіційний сайт поліпо тут і тут .
Siu Ching Pong -Asuka Kenji-

Я також використовую 3proxy у Windows. Я використовую його, щоб перетворити свій тунель SSH (SOCKS5) в HTTP-проксі для програм, які не підтримують SOCKS. 3проксі розробляється росіянами. Це з відкритим кодом. Офіційний сайт тут, його проект SourceForge знаходиться тут (не такий оновлений, як офіційний сайт).
Siu Ching Pong -Asuka Kenji-

2

Fiddler також дозволяє перетворити з http запиту на тунельований запит шкарпетки.

Я зробив це, щоб підштовхнути деякі оновлення Windows для запуску через з'єднання шкарпеток (через 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 також може це зробити. Перевірте вкладку «Підключення» на вашому проксі-сервері WWW, і ви можете обрати проксі-сервер SOCKS4, SOCKS4a або HTTP.

WinGate також має безкоштовну ліцензію для 10 одночасних користувачів.

Вкладка WWW проксі

Відмова: Я працюю над Qbik, які є авторами WinGate

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.