Ak sa curl pokúša pripojiť na localhost bez ohľadu na URL, ktorú ste mu zadali, VPN je nesprávne miesto, kde začať. Lokálny proxy HTTP alebo SOCKS môže byť zamýšľaným prvým spojením, aj keď sa služba, ktorú chcete, nachádza úplne inde. Ak tento proxy už nebeží, pokus o localhost zlyhá skôr, než sa curl vôbec dostane k cieľu. Ani odpoveď proxy nie je dôkazom, že cieľ odpovedal.

Prejdite tieto kroky v poradí a zastavte sa pri prvom, ktorý zmení prvý pokus o spojenie.

Najprv si prečítajte vlastné pravidlá proxy v curle

curl číta proxy premenné špecifické pre protokol, napríklad https_proxy a HTTPS_PROXY, ako aj ALL_PROXY, keď sa neuplatňuje žiadna hodnota špecifická pre protokol. Skontrolujte prostredie toho shellu, služby alebo úlohy, ktorá curl skutočne spúšťa, nie toho v aktuálnom termináli. Úloha CI, jednotka systemd a interaktívny shell môžu zdediť tri rôzne sady. Práve hádanie podľa viditeľného shellu spôsobuje, že tento prieskum stratí celé popoludnie.

Jednu výnimku si oplatí zapamätať. curl prijíma http_proxy iba malými písmenami; verzia veľkými písmenami HTTP_PROXY sa ignoruje, a preto sa to isté prostredie v iných nástrojoch správa inak.

Čítajte hodnoty súkromne, pretože URL proxy často nesie prihlasovacie údaje.

Potom skontrolujte predvolený konfiguračný súbor curlu na prepisy proxy alebo spojenia a potvrďte, ktorý spustiteľný súbor naozaj spúšťate. Alias shellu, funkcia alebo obalový skript môžu pridať možnosti, ktoré sa na vašom príkazovom riadku nikdy neobjavia.

Porovnajte tri volania so zapnutým TLS

Použite jeden schválený diagnostický cieľ a rovnaký binárny súbor pre všetky tri behy.

curl -v https://service.corp.example/status
curl -q -v https://service.corp.example/status
curl -q --proxy '' -v https://service.corp.example/status

-q potláča predvolený curlrc a aby fungoval, musí byť prvým parametrom v riadku. Neodstraňuje premenné prostredia proxy, čo prekvapuje tých, ktorí to očakávajú. Tretia forma pridáva prázdnu hodnotu --proxy, čím pre toto volanie prepisuje proxy požadovaný prostredím. Porovnávajte prvý pokus o spojenie v každom výstupe, nie konečný stavový kód.

Podrobný výstup môže odhaliť hlavičky, tokeny a prihlasovacie údaje proxy, preto ho uchovávajte lokálne a pred zdieľaním si prečítajte výňatky.

Čo ktorý výsledok vylučuje

Ak vynechanie predvolenej konfigurácie zmení spojenie, zdrojom je konfiguračný súbor. Ak ho zmení výslovné vypnutie zdedeného proxy, zdrojom je premenná prostredia. Ak ho nezmení ani jedno a localhost sa stále objavuje, pozrite sa na prepisy spojenia v príkazovom riadku, preklad názvov hostiteľov a zvolený spustiteľný súbor. Každé z toho má inú opravu a žiadne nie je zmenou smerovania.

Načítavanie vlastných knižníc alebo injektované správanie siete je neskoršia vrstva a samotná premenná prostredia nie je jeho dôkazom.

Držte rozhodnutie o proxy oddelene od VPN

Keď curl zvolí priamy cieľ, operačný systém toto spojenie stále smeruje. Vypnutie proxy aplikácie nevypína trasu VPN ani jej politiku filtrovania. Porovnania priameho prístupu robte len tam, kde je takáto diagnostika povolená. Test, ktorý potichu obchádza politiku, nie je platný výsledok, je to incident.

Ak je potrebný lokálny proxy, obnovte jeho službu a adresu namiesto mazania jeho nastavení.

Ak priamy prístup potrebujú len vybrané súkromné ciele, pridajte úzku schválenú výnimku a proxy si ponechajte pre všetko ostatné. Zachovajte prvú chybu zo zvolenej cesty, pretože odmietnutie localhost, odmietnutie CONNECT proxy, zlyhanie certifikátu a chyba autorizácie označujú štyri rôzne fázy.

Súvisiace články