Zašto se curl spaja na localhost umjesto na udaljeni URL
Odvojite naslijeđeni proxy, zadanu datoteku curlrc i pravi cilj prije nego što okrivite VPN. Tri kontrolirana pokretanja drže TLS provjeru uključenom.
Ako se curl pokušava spojiti na localhost bez obzira na URL koji ste mu dali, VPN je pogrešno mjesto za početak. Lokalni HTTP ili SOCKS proxy može biti namjeravana prva veza, čak i kada je usluga koju želite negdje sasvim drugdje. Ako taj proxy više ne radi, pokušaj prema localhostu ne uspijeva prije nego curl uopće dođe do odredišta. Ni odgovor proxyja nije dokaz da je odredište odgovorilo.
Prođite ove korake redom i zaustavite se na prvom koji promijeni prvi pokušaj veze.
Najprije pročitajte vlastita proxy pravila curla
curl čita proxy varijable specifične za protokol, poput https_proxy i HTTPS_PROXY, te ALL_PROXY kada se ne primjenjuje nijedna vrijednost specifična za protokol. Provjerite okruženje ljuske, usluge ili zadatka koji curl stvarno pokreće, a ne ono u vašem trenutačnom terminalu. CI zadatak, systemd jedinica i interaktivna ljuska mogu naslijediti tri različita skupa. Upravo nagađanje na temelju vidljive ljuske čini da ova istraga izgubi cijelo poslijepodne.
Jednu iznimku vrijedi zapamtiti. curl prihvaća http_proxy samo malim slovima; velika slova HTTP_PROXY se zanemaruju, zbog čega se isto okruženje ponaša drugačije u drugim alatima.
Čitajte vrijednosti privatno, jer URL proxyja često nosi vjerodajnice.
Zatim provjerite zadanu konfiguracijsku datoteku curla na proxy ili veze koje poništavaju postavke i potvrdite koju izvršnu datoteku zapravo pokrećete. Alias ljuske, funkcija ili omotna skripta mogu dodati opcije koje se nikada ne pojavljuju na vašem naredbenom retku.
Usporedite tri poziva s uključenim TLS-om
Upotrijebite jedno odobreno dijagnostičko odredište i istu binarnu datoteku za sva tri pokretanja.
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 potiskuje zadani curlrc i mora biti prvi parametar u retku da bi radio. Ne uklanja proxy varijable okruženja, što iznenađuje ljude koji to očekuju. Treći oblik dodaje praznu --proxy vrijednost i poništava proxy koji je zatražilo okruženje samo za taj poziv. Usporedite prvi pokušaj veze u svakom izlazu, a ne konačni kôd stanja.
Detaljan izlaz može otkriti zaglavlja, tokene i vjerodajnice proxyja, zato ga držite lokalno i čitajte ulomke prije dijeljenja.
Što svaki rezultat isključuje
Ako izostavljanje zadane konfiguracije promijeni vezu, izvor je konfiguracijska datoteka. Ako je promijeni izričito isključivanje naslijeđenog proxyja, izvor je varijabla okruženja. Ako je ne promijeni nijedno od toga i localhost se i dalje pojavljuje, pogledajte poništavanja veze na naredbenom retku, razrješavanje naziva hostova i odabranu izvršnu datoteku. Svako od toga ima drugačiji popravak i nijedno nije promjena usmjeravanja.
Učitavanje prilagođenih biblioteka ili ubrizgano mrežno ponašanje je kasniji sloj i sama varijabla okruženja nije dokaz za to.
Držite odluku o proxyju odvojeno od VPN-a
Nakon što curl odabere izravno odredište, operacijski sustav i dalje usmjerava tu vezu. Isključivanje proxyja aplikacije ne isključuje rutu VPN-a ni njegovu politiku filtriranja. Usporedbe izravnog pristupa radite samo tamo gdje je ta dijagnostika odobrena. Test koji tiho zaobilazi politiku nije valjan rezultat, to je incident.
Ako je potreban lokalni proxy, obnovite njegovu uslugu i adresu umjesto da brišete njegove postavke.
Ako izravan pristup trebaju samo odabrana privatna odredišta, dodajte usko odobreno izuzeće i zadržite proxy za sve ostalo. Sačuvajte prvu pogrešku s odabranog puta, jer odbijanje localhosta, odbijanje proxy CONNECT-a, neuspjeh certifikata i pogreška autorizacije označavaju četiri različite faze.