curls --preproxy kobler til en SOCKS-proxy før en HTTP- eller HTTPS-proxy nås. Alternativet støtter denne bestemte kjeden, ikke en vilkårlig liste med proxyservere.

Stien er klient → SOCKS-endepunkt → HTTP-proxy → mål. Bytt ut begge dokumentasjonsendepunktene i kommandoen:

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/

SOCKS-tjenesten må kunne nå HTTP-proxyens adresse og port. HTTP-proxyen må deretter godta målforespørselen. Hvis den andre proxyen bruker et vertsnavn, bestemmer den første SOCKS-modusen hvor navnet slås opp; et numerisk endepunkt unngår dette oppslaget.

Finn hoppet som feiler

Bekreft først en forespørsel gjennom hvert endepunkt separat; bruk en HTTP-proxytest med tidsgrenser for HTTP-hoppet. Selv om begge virker, kan den kombinerte ruten feile fordi den første proxyen ikke kan nå den andre.

Les den detaljerte sporingen i tilkoblingsrekkefølge. En SOCKS-feil på vei til den andre proxyen kommer før HTTP-proxyens beslutning om å godta eller avvise CONNECT til nettstedet. Noter hvilket håndtrykk som feilet.

Når det ekstra hoppet hjelper

Oppsettet kan være nyttig når en autorisert HTTP-proxy er tilgjengelig via en SOCKS-sti. Det legger også til en tjeneste og nettverksrute som kan feile eller gi forsinkelser. Å kjede endepunkter fra en offentlig proxyliste gir ingen garanti for pålitelighet eller anonymitet og krever fortsatt tillit til partene som håndterer forbindelsen.

--preproxy krever curl 7.52.0 eller nyere; andre programmer støtter kanskje ikke samme oppsett.

Relaterte artikler