Hvers vegna curl hunsar HTTP_PROXY
Vísvitandi HTTP_PROXY-undantekning curl, samskiptareglusértækar breytur, ALL_PROXY og fyrirsjáanleg prófun á milliþjóni með umhverfisbreytum.
Fyrir HTTP-áfangastaði skal stilla http_proxy með lágstöfum. curl hunsar vísvitandi HTTP_PROXY með hástöfum. Í POSIX-skel:
http_proxy=http://127.0.0.1:8080 curl http://example.com/
https_proxy=http://127.0.0.1:8080 curl https://example.com/Þessar gildisgjafir eiga aðeins við skipunina sem kemur strax á eftir. Skiptu út hlustunarstaðnum í dæminu fyrir þinn milliþjón; til að bera saman opinbera endapunkta má velja úr listanum yfir HTTP-milliþjóna. Breytan https_proxy velur leið að HTTPS-áfangastöðum; gildi með http:// merkir enn venjulegan HTTP-milliþjón sem getur myndað göng að áfangastaðnum. PowerShell og skipanaskeljar Windows nota aðra setningafræði við gildisgjöf.
Hvers vegna einmitt þessi hástafaritun er hættuleg
CGI-umhverfi geta breytt hausum innkomandi beiðna í HTTP_-breytur með hástöfum. Beiðnihaus sem heitir Proxy getur því orðið að HTTP_PROXY. Að treysta honum sem stillingu fyrir útleiðandi tengingar myndi leyfa beiðnigögnum að velja milliþjón. Krafa curl um lágstafi kemur í veg fyrir þessa vörpun; undantekningin á ekki með nákvæmlega sama hætti við HTTPS og breytur annarra samskiptareglna.
Ef breyting á breytunni breytir ekki leiðinni
Leitaðu fyrst að breytu fyrir viðkomandi samskiptareglu og síðan varakostinum ALL_PROXY. Samsvarandi NO_PROXY-regla getur farið fram hjá milliþjóninum. Lágstafaafbrigði og skilgreiningar sem keppa sín á milli skipta líka máli. Þessi lykkja fyrir Unix-líka skel tilkynnir aðeins tilvist án þess að birta gildi sem gætu innihaldið auðkennisupplýsingar:
for name in http_proxy HTTP_PROXY https_proxy HTTPS_PROXY all_proxy ALL_PROXY no_proxy NO_PROXY; do
if printenv "$name" >/dev/null; then
printf '%s is set\n' "$name"
fi
doneSkoðaðu upptaldar skilgreiningar á eigin vél. Ef einhver birtist aftur skaltu athuga stillingar ræsingarskeljarinnar, þjónustunnar, IDE, gámsins eða CI. Tilvist bendir á möguleg inntök; hún segir ekki hvaða gildi fékk forgang.
Til að einangra eina beiðni frá þessum vali á milliþjóni skaltu gefa bæði endapunktinn og tóman framhjáhlaupslista:
curl --proxy http://127.0.0.1:8080 --noproxy '' --connect-timeout 5 --max-time 15 --verbose https://example.com/Fyrir leyfðan samanburð með beinni tengingu:
curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/Þessar skipanir hjálpa að greina erfða leið frá tengingarbilun. Lestu niðurstöður milliþjónsprófsins skref fyrir skref áður en þú breytir fleiri umhverfisstillingum. Notaðu breytureglur curl fyrir curl; keyrsluumhverfi forrits getur fundið og sameinað milliþjóna með öðrum hætti.