Otestujte HTTP proxy pomocí curl
Pomocí časově omezeného testu curl prozkoumejte spojení s proxy, tunel HTTPS, stav odpovědi a pravidla obcházení bez změny globální proxy zařízení.
Nahraďte 127.0.0.1:8080 koncovým bodem své služby nebo adresou ze seznamu HTTP proxy a spusťte tento příkaz vůči neškodnému cíli HTTPS:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/Adresa zpětné smyčky označuje naslouchající rozhraní na vašem počítači. Příkaz je výslovně vybere, pro toto volání vyprázdní seznam výjimek curl a povolí pět sekund na navázání spojení a patnáct sekund celkem. Nastavení proxy prohlížeče a systému nemění.
Použijte skutečný spustitelný soubor curl, pokud shell přiřazuje curl jako alias jinému programu; curl --version identifikuje sestavení. Vyžaduje-li samotné naslouchající rozhraní TLS, použijte schéma URL proxy uvedené v jeho dokumentaci.
Sledujte čtyři výsledky, ne jediný signál úspěchu
- Spojení s vybranou proxy: adresa a port jsou dosažitelné.
- CONNECT přijat: proxy otevřela tunel k cíli HTTPS.
- Certifikát cíle ověřen: TLS bylo dokončeno s očekávanými kontrolami důvěry.
- Odpověď cíle přijata: zkontrolujte stav a obsah podle výsledku, který vaše aplikace potřebuje.
I po funkčním tunelu může cíl vrátit 403 nebo 429. curl také může úspěšně skončit po přijetí chybové odpovědi HTTP, proto zaznamenejte stav odpovědi i chybový výsledek curl. Samotné spojení TCP nebo úspěšný CONNECT nestačí.
Stručný výsledek pro opakovaná porovnání
V unixovém shellu zahoďte tělo odpovědi a vypište stav tunelu, stav cíle, protistranu spojení a uplynulý č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 popisuje odpověď tunelu; http_code popisuje konečnou odpověď HTTP. remote_ip je protistrana spojení curl, nikoli nezávislé měření výstupní adresy proxy. V jiných systémech nahraďte /dev/null nebo tělo odpovědi ponechte.
Pokud test selže, najděte neúspěšný krok navazování spojení nebo přenosu a porovnejte stejný cíl přímo, pokud je tato trasa povolena:
curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/--noproxy '*' obchází proxy. Selhání ověření certifikátu na obou trasách ukazuje na společný problém s důvěrou; přímé spojení úspěšné při odmítnutém CONNECT ukazuje na autentizaci nebo pravidla proxy. Před sdílením podrobný výstup prohlédněte, protože může obsahovat identifikační údaje.
Uložte koncový bod, cíl a časové razítko společně s výsledkem. Tím zaznamenáte, co fungovalo pro daný požadavek; budoucí dostupnost, soukromí a výkon při zátěži vyžadují samostatné důkazy.