curls --preproxy ansluter till en SOCKS-proxy innan en HTTP- eller HTTPS-proxy nås. Alternativet stöder denna bestämda kedja, inte en godtycklig lista med proxyservrar.

Vägen är klient → SOCKS-slutpunkt → HTTP-proxy → destination. Byt ut båda dokumentationsslutpunkterna i kommandot:

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-tjänsten måste kunna nå HTTP-proxyns adress och port. HTTP-proxyn måste sedan acceptera destinationsbegäran. Om den andra proxyn använder ett värdnamn avgör det första SOCKS-läget var namnet slås upp; en numerisk slutpunkt undviker uppslaget.

Hitta hoppet som misslyckas

Bekräfta först en begäran genom varje slutpunkt separat; använd ett HTTP-proxytest med tidsgränser för HTTP-hoppet. Även om båda fungerar kan den kombinerade rutten misslyckas eftersom den första proxyn inte når den andra.

Läs den utförliga spårningen i anslutningsordning. Ett SOCKS-fel när den andra proxyn ska nås inträffar före HTTP-proxyns beslut att acceptera eller avvisa CONNECT till webbplatsen. Anteckna vilken handskakning som misslyckades.

När det extra hoppet hjälper

Upplägget kan vara användbart när en tillåten HTTP-proxy går att nå genom en SOCKS-väg. Det lägger också till en tjänst och nätverksrutt som kan fallera eller öka fördröjningen. Att kedja slutpunkter från en offentlig proxylista garanterar inte tillförlitlighet eller anonymitet och kräver fortfarande tillit till parterna som hanterar anslutningen.

--preproxy kräver curl 7.52.0 eller senare; andra program stöder kanske inte samma upplägg.

Relaterade artiklar