Konvertieren Sie HTTP-Anforderungen in SOCKS5


46

Ich mache gerade einige Testarbeiten mit TOR und bin auf ein kleines Problem gestoßen. Tors Client unterstützt nur das Empfangen von Verbindungen über ein SOCKS5-Protokoll, aber die von mir verwendeten Anwendungen unterstützen nur HTTP-Proxy-Protokolle.

Kann man etwas in die Mitte legen? So dass es zum Beispiel ging.

Mein Programm (nur HTTP)> HTTP zu SOCKS Konverter> Tor SOCKS5 Server


Sie könnten ein Betriebssystem (z. B. Tails und Whonix) verwenden, das den gesamten Datenverkehr transparent durch Tor leitet, ohne dass die Anwendung Proxys unterstützen muss. Dies reduziert auch das Risiko von DNS-Lecks und anderen Tor-Umgehungen erheblich.
CodesInChaos

Antworten:


44

Es sieht so aus, als ob DeleGate dies mit etwas wie dem Folgenden tun kann (wobei DeleGate HTTP-Verbindungen an Port 8080 akzeptiert und an einen SOCKS-Server an Port 9050 weiterleitet):

delegated -P8080 SERVER=http SOCKS=localhost:9050

@ Dboy1612: Kannst du über deine Erfahrungen mit delegierten für diesen Anwendungsfall berichten. Ich habe auch den gleichen Anwendungsfall.
Pradeepchhetri

Es ist ein großartiges Werkzeug. Neue Version (v9.9.9) vor kurzem veröffentlicht.
Kev

1
Irgendeine Idee, warum für den Download UND die Installation eine E-Mail-Adresse erforderlich ist?
Halil Özgür

2
@pradeepchhetri Nachdem ich einen Tag mit Spielen verbracht habe delegate(d), bin ich zu dem Schluss gekommen, dass es absolut entschlossen ist, DNS-Anforderungen zu verlieren , ungeachtet mehrerer gegenteiliger Behauptungen in der Konfigurationsdokumentation. Ich würde gerne feststellen, dass ich falsch liege, aber in diesem Punkt bin ich pessimistisch.
Adam Mackler

Funktioniert
Katze

9

Tor Bundle hat kein Polipo mehr, hier ist die offizielle Tor FAQ :

In der Vergangenheit enthielten Tor-Bundles einen HTTP-Proxy wie Privoxy oder Polipo, um einen Fehler in Firefox zu umgehen, der schließlich in Firefox 6 behoben wurde. Jetzt benötigen Sie keinen separaten HTTP-Proxy mehr, um Tor zu verwenden out macht Sie sicherer, da Torbutton die Interaktion von Firefox mit Websites besser kontrollieren kann.

Wenn Sie versuchen, eine externe Anwendung mit Tor zu verwenden, sollten Sie in Schritt Null die Warnungen erneut lesen, um herauszufinden, wie Sie Fehler machen können. Schritt eins sollte sein, zu versuchen, einen Socks-Proxy anstelle eines http-Proxys zu verwenden - Tor führt einen Socks-Proxy auf Port 9050 unter Windows aus oder siehe oben für OSX und Linux.

Wenn dies fehlschlägt, können Sie privoxy installieren . Beachten Sie jedoch, dass dieser Ansatz nicht für unerfahrene Benutzer empfohlen wird. Privoxy hat eine Beispielkonfiguration von Tor und Privoxy .


1
Es hat bei mir geklappt tnx!
Hikari

7

Sie können auch Privoxy verwenden . Fügen Sie diese Zeile zu Ihrer config.txtDatei hinzu:

forward-socks5 / 127.0.0.1:9050 .

(Vergessen Sie nicht den kleinen Punkt am Ende.)

Verwenden Sie dann den HTTP- oder HTTPS-Proxy unter 127.0.0.1:8118


eine tolle und einfache Möglichkeit. Dankeschön. funktioniert wie ein Zauber
iraj jelodari

5

Sie haben kein Betriebssystem angegeben. Bitte tun Sie dies in Zukunft.


In dieser Antwort wird Polipo empfohlen, das im Vidalia-Bundle enthalten ist, das vom Tor-Projekt gehostet wird, und daher wahrscheinlich von diesen für Windows empfohlen wird. Polipo hat auch eine * nix-Version (und wurde ursprünglich für * nix entwickelt), daher habe ich Anweisungen zum Einrichten beigefügt - siehe den zweiten Abschnitt unten. Es ist eine eher leichte Lösung, wenn es darauf ankommt.


Windows

Laden Sie das Vidalia-Bundle herunter. Es enthält die Vidalia-Benutzeroberfläche und ein Programm namens Polipo sowie Tor. Im Bundle führt Polipo standardmäßig einen HTTP-Proxy auf Port 8118 aus, der über den Tor SOCKS-Proxy auf Port 9050 umgeleitet wird.

Erweitertes Setup

Es ist auch möglich, Polipo manuell ohne das Vidalia-Bundle zu konfigurieren.

Entnommen aus http://www.pps.jussieu.fr/~jch/software/polipo/tor.html

Sie bieten auch Binärdateien, die Sie herunterladen sollten.

Aufbau

Die Konfiguration von Polipo erfolgt durch Festlegen einer Reihe von Konfigurationsvariablen in der Polipo-Konfigurationsdatei, bei der es sich um eine reine Textdatei handelt. Um Polipo anzuweisen, tor zu verwenden und keine abgerufenen Seiten auf der Festplatte zwischenzuspeichern, müssen Sie Ihrer Konfigurationsdatei die folgenden Zeilen hinzufügen:

socksParentProxy = localhost:9050
diskCacheRoot=""

Sie möchten auch die lokale Konfigurationsoberfläche deaktivieren, um sich vor Browser-Schwachstellen zu schützen:

disableLocalInterface=true

Laufen es

Wenn Sie Polipo ausführen, müssen Sie den Speicherort für die Konfigurationsdatei mithilfe des Flags -c in der Befehlszeile von Polipo angeben:

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

Beachten Sie, dass Sie auch unter Windows die Unix-Syntax für den Dateinamen verwenden müssen (mit Schrägstrichen) und kein zu verwendendes Gerät („Laufwerk“) angeben können.

Der Standard-Abhörport von Polipo ist 8123.

Die Standardkonfiguration aus dem Vidalia-Bundle finden Sie am Ende dieser Antwort.


* nix

Beinhaltet Linux, Unix, BSD, OS X und die meisten modernen (2012) Betriebssysteme, die nicht auf NT (Windows) basieren.

Nochmals aus http://www.pps.jussieu.fr/~jch/software/polipo/tor.html

Laden Sie ein Paket aus dem von Ihnen verwendeten Repository herunter. Google kann hier helfen. Alternativ kann eine direkte Binärdatei heruntergeladen werden.

Aufbau

Die Konfiguration von Polipo erfolgt durch Festlegen einer Reihe von Konfigurationsvariablen in der Konfigurationsdatei von Polipo, entweder ~/.polipooder /etc/polipo/config, je nachdem, was vorhanden ist. Um Polipo anzuweisen, tor zu verwenden und keine abgerufenen Seiten auf der Festplatte zwischenzuspeichern, müssen Sie Ihrer Konfigurationsdatei die folgenden Zeilen hinzufügen:

socksParentProxy = localhost:9050
diskCacheRoot=""

Sie möchten auch die lokale Konfigurationsoberfläche deaktivieren, um sich vor Browser-Schwachstellen zu schützen:

disableLocalInterface=true

Wenn Sie einen anderen Speicherort für die Konfigurationsdatei angeben möchten, können Sie diesen mithilfe des Flags -c in der Befehlszeile von Polipo angeben.

Beachten Sie, dass wenn Sie Polipo von einer von der Distribution bereitgestellten Binärdatei installiert haben, ~ / .polipo wahrscheinlich nicht berücksichtigt wird - Sie müssen / etc / polipo / config bearbeiten.

Laufen es

Wenn Sie Polipo über ein von der Distribution bereitgestelltes Paket installiert haben, wird Polipo wahrscheinlich bereits ausgeführt. Sie müssen es neu starten, damit die neue Konfiguration berücksichtigt wird. Andernfalls greifen Sie einfach zu einem freien Terminalfenster und geben Sie Folgendes ein:

$ polipo

Wenn Sie einen nicht standardmäßigen Speicherort für die Polipo-Konfigurationsdatei verwenden, geben Sie diesen in der Befehlszeile an. Beispiel:

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

Der Standard-Abhörport von Polipo ist 8123.

Die Standardkonfiguration aus dem Vidalia-Bundle finden Sie am Ende dieser Antwort.


Standard-Polipo-Konfiguration (Vidalia-Bundle)

Dies ist meine Standard-Polipo-Konfiguration aus dem Vidalia-Bundle für Windows. So wie es aussieht, sollte es auch in * nix funktionieren - soweit ich das beurteilen kann, gibt es nichts Plattformspezifisches. Ja, es ist eine IPv4-Konfiguration.

### $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

Ich verwende polipo unter Mac OS X 10.6. Es scheint manchmal Probleme zu geben, wenn POST-Anforderungen ausgeführt werden. Die offizielle Seite von polipo gibt es hier und hier .
Siu Ching Pong -Asuka Kenji-

Ich benutze auch 3proxy unter Windows. Ich verwandle damit meinen SSH-Tunnel (SOCKS5) in einen HTTP-Proxy für Programme, die SOCKS nicht unterstützen. 3proxy wird von Russen entwickelt. Es ist Open Source. Die offizielle Seite ist hier und das SourceForge-Projekt ist hier (nicht so aktuell wie die offizielle Seite).
Siu Ching Pong -Asuka Kenji-

2

Fiddler erlaubt auch eine Konvertierung von einer http-Anfrage in eine Socken-Tunnel-Anfrage.

Ich habe dies getan, um einige Windows-Updates für die Ausführung über eine Sockenverbindung (über Amazon EC2 und Putty) bereitzustellen.

Von dieser Seite aus https://groups.google.com/forum/#!topic/httpfiddler/6m2xEe0fRmw

In Fiddler gibt es eine Registerkarte "FiddlerScript", auf der Sie Folgendes hinzufügen können:

Unter Verwendung der X-OverrideGatewayFlag, verwenden Sie das socks=Präfix, um anzuzeigen , > Fiedler sollte das SOCKS - Protokoll v4a verwenden , wenn auf den Upstream - Server sprechen.

Beispielsweise richtet das TOR-Installationsprogramm einen Einstiegspunkt in das TOR-Netzwerk mithilfe eines SOCKS-Proxys auf Port 9150 mit dem Namen Polipo ein. Sie können in die OnBeforeRequestMethode Ihres FiddlerScript Folgendes einfügen, um alle Anforderungen an test.example.com über das TOR-Netzwerk weiterzuleiten:

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

Wenn Sie stattdessen lieber den gesamten Datenverkehr über die SOCKS senden möchten, können Sie das X-OverrideGatewayFlag einfach für jede Sitzung bedingungslos setzen.


0

WinGate kann das auch. Überprüfen Sie die Registerkarte Verbindung auf Ihrem WWW-Proxy, und Sie können SOCKS4-, SOCKS4a- oder HTTP-Proxy-Upstream auswählen.

WinGate hat auch eine kostenlose Lizenz für 10 gleichzeitige Benutzer.

Registerkarte "WWW-Proxy-Verbindung"

Haftungsausschluss: Ich arbeite für Qbik, die die Autoren von WinGate sind

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.