Met de curl-optie --preproxy maak je eerst verbinding met een SOCKS-proxy en daarna met een HTTP- of HTTPS-proxy. De optie ondersteunt deze specifieke keten, geen willekeurige lijst proxyservers.

Het pad is client → SOCKS-eindpunt → HTTP-proxy → bestemming. Vervang beide documentatie-eindpunten in dit commando:

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/

De SOCKS-dienst moet het adres en de poort van de HTTP-proxy kunnen bereiken. De HTTP-proxy moet vervolgens het bestemmingsverzoek accepteren. Als de tweede proxy een hostnaam gebruikt, bepaalt de eerste SOCKS-modus waar die naam wordt opgelost; een numeriek eindpunt vermijdt die opzoeking.

De falende stap vinden

Bevestig eerst een verzoek via elk eindpunt afzonderlijk; gebruik voor de HTTP-stap een HTTP-proxytest met tijdslimieten. Ook als beide werken, kan de gecombineerde route mislukken doordat de eerste proxy de tweede niet kan bereiken.

Lees de uitgebreide trace in verbindingsvolgorde. Een SOCKS-fout bij het bereiken van de tweede proxy komt vóór de beslissing van de HTTP-proxy om CONNECT naar de website te accepteren of te weigeren. Noteer welke handshake mislukte.

Wanneer de extra stap helpt

Deze opstelling kan nuttig zijn als een toegestane HTTP-proxy via een SOCKS-pad bereikbaar is. Ze voegt ook een dienst en netwerkroute toe die kunnen uitvallen of vertragen. Eindpunten uit een openbare proxylijst achter elkaar zetten garandeert geen betrouwbaarheid of anonimiteit en vereist nog steeds vertrouwen in de partijen die de verbinding afhandelen.

--preproxy vereist curl 7.52.0 of nieuwer; andere toepassingen ondersteunen mogelijk niet dezelfde opstelling.

Gerelateerde artikelen