Die SOCKS-zu-HTTP-Proxykette von curl
Richten Sie curls unterstützte SOCKS-zu-HTTP-Proxykette ein, beachten Sie die Endpunktreihenfolge und testen Sie jeden Hop vor dem Kombinieren.
Die curl-Option --preproxy verbindet sich mit einem SOCKS-Proxy, bevor ein HTTP- oder HTTPS-Proxy erreicht wird. Sie unterstützt diese bestimmte Kette, keine beliebige Liste von Proxyservern.
Der Pfad lautet Client → SOCKS-Endpunkt → HTTP-Proxy → Ziel. Ersetzen Sie beide Dokumentationsendpunkte im Befehl:
curl --preproxy socks5h://203.0.113.10:1080 --proxy http://203.0.113.20:8080 --noproxy '' --connect-timeout 5 --max-time 20 --verbose https://example.com/
Der SOCKS-Dienst muss Adresse und Port des HTTP-Proxys erreichen können. Anschließend muss der HTTP-Proxy die Zielanfrage annehmen. Hat der zweite Proxy einen Hostnamen, bestimmt der erste SOCKS-Modus, wo dieser Name aufgelöst wird; ein numerischer Endpunkt vermeidet diese Abfrage.
Den fehlerhaften Hop finden
Prüfen Sie zunächst eine Anfrage über jeden Endpunkt einzeln; nutzen Sie für den HTTP-Hop einen zeitlich begrenzten HTTP-Proxytest. Selbst wenn beide funktionieren, kann die kombinierte Route scheitern, weil der erste Proxy den zweiten nicht erreicht.
Lesen Sie die ausführliche Ablaufverfolgung in Verbindungsreihenfolge. Ein SOCKS-Fehler beim Erreichen des zweiten Proxys liegt vor der Entscheidung des HTTP-Proxys, CONNECT zur Website anzunehmen oder abzulehnen. Notieren Sie den fehlgeschlagenen Handshake.
Wann der zusätzliche Hop hilft
Diese Anordnung kann nützlich sein, wenn ein autorisierter HTTP-Proxy über einen SOCKS-Pfad erreichbar ist. Sie fügt aber einen weiteren Dienst und Netzwerkpfad hinzu, der ausfallen oder verzögern kann. Eine Kette aus Endpunkten einer öffentlichen Proxyliste garantiert weder Zuverlässigkeit noch Anonymität und erfordert weiterhin Vertrauen in die verbindungsverarbeitenden Parteien.
--preproxy erfordert curl 7.52.0 oder neuer; andere Anwendungen unterstützen diese Anordnung möglicherweise nicht.