Řetězec proxy od SOCKS k HTTP v curl
Nastavte řetězec SOCKS–HTTP podporovaný curl, určete pořadí koncových bodů a před spojením otestujte každý krok.
Volba --preproxy v curl se připojí k SOCKS proxy před dosažením HTTP nebo HTTPS proxy. Podporuje tento konkrétní řetězec, nikoli libovolný seznam proxy serverů.
Cesta je klient → koncový bod SOCKS → HTTP proxy → cíl. Nahraďte oba dokumentační koncové body v příkazu:
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/
Služba SOCKS musí dosáhnout adresy a portu HTTP proxy. HTTP proxy pak musí přijmout požadavek k cíli. Pokud je druhá proxy zadána názvem hostitele, první režim SOCKS určuje, kde se tento název přeloží; číselný koncový bod tento překlad nepotřebuje.
Hledání neúspěšného kroku
Nejprve ověřte požadavek přes každý koncový bod zvlášť; pro HTTP krok použijte časově omezený test HTTP proxy. I když oba fungují, kombinovaná cesta může selhat, protože první proxy nedosáhne druhé.
Čtěte podrobný výpis v pořadí spojení. Chyba SOCKS při dosahování druhé proxy nastává před rozhodnutím HTTP proxy přijmout či odmítnout CONNECT k webu. Zaznamenejte, který handshake selhal.
Kdy je další krok užitečný
Toto uspořádání může pomoci, pokud je autorizovaná HTTP proxy dosažitelná přes cestu SOCKS. Přidává však další službu a síťovou cestu, které mohou selhat nebo způsobit zpoždění. Řetězení koncových bodů z veřejného seznamu proxy nezaručuje spolehlivost ani anonymitu a stále vyžaduje důvěru ve strany zpracovávající spojení.
--preproxy vyžaduje curl 7.52.0 nebo novější; jiné aplikace nemusí stejné uspořádání podporovat.