Miksi curl yhdistää localhostiin eikä etä-URL-osoitteeseen
Erottele peritty välityspalvelin, oletusarvoinen curlrc-tiedosto ja todellinen kohde ennen kuin syytät VPN:ää. Kolme kontrolloitua ajoa pitävät TLS-tarkistuksen päällä.
Jos curl yrittää yhdistää localhostiin antamastasi URL-osoitteesta riippumatta, VPN on väärä paikka aloittaa. Paikallinen HTTP- tai SOCKS-välityspalvelin voi olla tarkoitettu ensimmäinen yhteys, vaikka haluamasi palvelu olisi aivan muualla. Jos tämä välityspalvelin ei enää käy, localhost-yritys epäonnistuu ennen kuin curl koskaan saavuttaa kohteen. Myöskään välityspalvelimen vastaus ei todista, että kohde vastasi.
Käy nämä vaiheet järjestyksessä ja pysähdy ensimmäiseen, joka muuttaa ensimmäistä yhteysyritystä.
Lue ensin curlin omat välityspalvelinsäännöt
curl lukee protokollakohtaisia välityspalvelinmuuttujia, kuten https_proxy ja HTTPS_PROXY, sekä ALL_PROXY, kun mikään protokollakohtainen arvo ei päde. Tarkista sen kuoren, palvelun tai tehtävän ympäristö, joka todella käynnistää curlin, älä nykyisen päätteesi ympäristöä. CI-työ, systemd-yksikkö ja interaktiivinen kuori voivat periä kolme eri joukkoa. Juuri näkyvän kuoren perusteella arvaaminen on se, miten tämä selvitys hukkaa kokonaisen iltapäivän.
Yksi poikkeus kannattaa painaa mieleen. curl hyväksyy http_proxy vain pienillä kirjaimilla; isokirjaiminen HTTP_PROXY jätetään huomiotta, ja siksi sama ympäristö käyttäytyy eri tavoin muissa työkaluissa.
Lue arvot yksityisesti, sillä välityspalvelimen URL-osoite kuljettaa usein tunnistetietoja.
Tarkista sitten curlin oletusarvoinen asetustiedosto välityspalvelimen tai yhteyden ohituksista ja varmista, mitä suoritettavaa tiedostoa todella ajat. Kuoren alias, funktio tai kääreskripti voi lisätä valintoja, joita ei koskaan näy komentorivilläsi.
Vertaa kolmea kutsua TLS päällä
Käytä yhtä hyväksyttyä diagnostiikkakohdetta ja samaa binaaritiedostoa kaikissa kolmessa ajossa.
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 vaientaa oletusarvoisen curlrc-tiedoston ja sen on oltava rivin ensimmäinen parametri toimiakseen. Se ei poista välityspalvelimen ympäristömuuttujia, mikä yllättää ne, jotka odottavat niin. Kolmas muoto lisää tyhjän --proxy-arvon ja ohittaa ympäristön pyytämän välityspalvelimen vain tämän kutsun osalta. Vertaa ensimmäistä yhteysyritystä kussakin tulosteessa, älä lopullista tilakoodia.
Yksityiskohtainen tuloste voi paljastaa otsakkeita, tunnuksia ja välityspalvelimen tunnistetietoja, joten pidä se paikallisena ja lue katkelmia ennen niiden jakamista.
Mitä kukin tulos sulkee pois
Jos oletusasetuksen pois jättäminen muuttaa yhteyttä, lähde on asetustiedosto. Jos perityn välityspalvelimen nimenomainen poistaminen käytöstä muuttaa sitä, lähde on ympäristömuuttuja. Jos kumpikaan ei muuta sitä ja localhost näkyy yhä, tarkista komentorivin yhteysasetusten ohitukset, isäntänimien selvitys ja valittu suoritettava tiedosto. Jokaisella niistä on eri korjaus, eikä mikään niistä ole reitityksen muutos.
Mukautettujen kirjastojen lataaminen tai syötetty verkkokäyttäytyminen on myöhempi kerros, eikä pelkkä ympäristömuuttuja ole todiste siitä.
Pidä välityspalvelinpäätös erillään VPN:stä
Kun curl valitsee suoran kohteen, käyttöjärjestelmä reitittää sen yhteyden yhä. Sovelluksen välityspalvelimen poistaminen käytöstä ei poista VPN:n reittiä tai sen suodatuskäytäntöä. Tee suoran käytön vertailuja vain siellä, missä tämä diagnostiikka on sallittua. Testi, joka hiljaa kiertää käytännön, ei ole kelvollinen tulos, se on tapaus.
Jos paikallinen välityspalvelin tarvitaan, palauta sen palvelu ja osoite sen sijaan, että poistaisit sen asetukset.
Jos vain valitut yksityiset kohteet tarvitsevat suoraa käyttöä, lisää kapea hyväksytty poikkeus ja pidä välityspalvelin kaikelle muulle. Säilytä valitun polun ensimmäinen virhe, sillä localhostin hylkäys, välityspalvelimen CONNECT-hylkäys, varmenteen epäonnistuminen ja valtuutusvirhe osoittavat neljää eri vaihetta.