Łańcuch proxy od SOCKS do HTTP w curl
Skonfiguruj obsługiwany przez curl łańcuch SOCKS-HTTP, ustal kolejność punktów końcowych i przetestuj każdy etap przed połączeniem.
Opcja --preproxy w curl łączy się z proxy SOCKS przed dotarciem do proxy HTTP lub HTTPS. Obsługuje ten konkretny łańcuch, a nie dowolną listę serwerów proxy.
Ścieżka to klient → punkt SOCKS → proxy HTTP → cel. Zastąp oba dokumentacyjne punkty końcowe w poleceniu:
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/
Usługa SOCKS musi móc dotrzeć do adresu i portu proxy HTTP. Następnie proxy HTTP musi zaakceptować żądanie do celu. Jeśli drugie proxy używa nazwy hosta, pierwszy tryb SOCKS określa miejsce rozwiązania tej nazwy; adres liczbowy omija to wyszukiwanie.
Ustalanie etapu, który zawiódł
Najpierw potwierdź żądanie przez każdy punkt osobno; dla etapu HTTP użyj testu proxy HTTP z limitami czasu. Nawet jeśli oba działają, połączona trasa może zawieść, bo pierwsze proxy nie może dotrzeć do drugiego.
Czytaj szczegółowy ślad w kolejności połączeń. Awaria SOCKS przy docieraniu do drugiego proxy występuje przed decyzją proxy HTTP o przyjęciu lub odrzuceniu CONNECT do witryny. Zapisz, która negocjacja zawiodła.
Kiedy dodatkowy etap pomaga
Taki układ może być przydatny, gdy autoryzowane proxy HTTP jest dostępne przez ścieżkę SOCKS. Dodaje też kolejną usługę i trasę sieciową, które mogą zawieść lub zwiększyć opóźnienia. Łączenie punktów z publicznej listy proxy nie gwarantuje niezawodności ani anonimowości i nadal wymaga zaufania do stron obsługujących połączenie.
--preproxy wymaga curl 7.52.0 lub nowszego; inne aplikacje mogą nie obsługiwać takiego układu.