Otestujte HTTP proxy pomocou curl
Časovo obmedzeným testom curl preskúmajte spojenie s proxy, tunel HTTPS, stav odpovede a pravidlá obchádzania bez zmeny globálnej proxy zariadenia.
Nahraďte 127.0.0.1:8080 koncovým bodom svojej služby alebo adresou zo zoznamu HTTP proxy a spustite tento príkaz voči neškodnému cieľu HTTPS:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/Adresa spätnej slučky označuje počúvajúce rozhranie na vašom počítači. Príkaz ho výslovne vyberie, pre toto volanie vyprázdni zoznam výnimiek curl a povolí päť sekúnd na nadviazanie spojenia a pätnásť sekúnd celkovo. Nastavenia proxy prehliadača a systému nemení.
Použite skutočný spustiteľný súbor curl, ak shell priraďuje curl ako alias inému programu; curl --version identifikuje zostavenie. Ak samotné počúvajúce rozhranie vyžaduje TLS, použite schému URL proxy uvedenú v jeho dokumentácii.
Sledujte štyri výsledky, nie jediný signál úspechu
- Spojenie s vybranou proxy: adresa a port sú dosiahnuteľné.
- CONNECT prijatý: proxy otvorila tunel k cieľu HTTPS.
- Certifikát cieľa overený: TLS sa dokončilo s očakávanými kontrolami dôvery.
- Odpoveď cieľa prijatá: skontrolujte stav a obsah podľa výsledku, ktorý vaša aplikácia potrebuje.
Aj po funkčnom tuneli môže cieľ vrátiť 403 alebo 429. curl môže úspešne skončiť aj po prijatí chybovej odpovede HTTP, preto zaznamenajte stav odpovede aj chybový výsledok curl. Samotné spojenie TCP alebo úspešný CONNECT nestačí.
Stručný výsledok na opakované porovnania
V unixovom shelli zahoďte telo odpovede a vypíšte stav tunela, stav cieľa, protistranu spojenia a uplynutý čas:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --silent --show-error --output /dev/null --write-out 'http=%{http_code} connect=%{http_connect} peer=%{remote_ip} total=%{time_total}\n' https://example.com/http_connect opisuje odpoveď tunela; http_code opisuje konečnú odpoveď HTTP. remote_ip je protistrana spojenia curl, nie nezávislé meranie výstupnej adresy proxy. V iných systémoch nahraďte /dev/null alebo telo odpovede ponechajte.
Ak test zlyhá, nájdite neúspešný krok nadväzovania spojenia alebo prenosu a porovnajte rovnaký cieľ priamo, ak je taká trasa povolená:
curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/--noproxy '*' obchádza proxy. Zlyhanie overenia certifikátu na oboch trasách ukazuje na spoločný problém s dôverou; úspešné priame spojenie pri odmietnutom CONNECT ukazuje na autentifikáciu alebo pravidlá proxy. Pred zdieľaním podrobný výstup prezrite, pretože môže obsahovať identifikačné údaje.
Uložte koncový bod, cieľ a časovú pečiatku spolu s výsledkom. Tým zaznamenáte, čo fungovalo pri danej požiadavke; budúca dostupnosť, súkromie a výkon pri záťaži vyžadujú samostatné dôkazy.