Zakaj curl prezre HTTP_PROXY
Namenska izjema curl za HTTP_PROXY, spremenljivke posameznih protokolov, ALL_PROXY in predvidljivo preverjanje posrednika prek okolja.
Za cilje HTTP nastavite http_proxy z malimi črkami. curl namerno prezre HTTP_PROXY z velikimi črkami. V lupini POSIX:
http_proxy=http://127.0.0.1:8080 curl http://example.com/
https_proxy=http://127.0.0.1:8080 curl https://example.com/Te prireditve veljajo samo za ukaz neposredno za njimi. Primer poslušajoče končne točke zamenjajte s svojim posrednikom; za primerjavo javnih končnih točk izberite kandidata s seznama posrednikov HTTP. Spremenljivka https_proxy izbira pot do ciljev HTTPS; vrednost z http:// še vedno pomeni običajni posrednik HTTP, ki lahko vzpostavi predor do cilja. PowerShell in ukazne lupine Windows uporabljajo drugačno sintakso prirejanja.
Zakaj je nevaren prav ta zapis z velikimi črkami
Okolja CGI lahko glave dohodnih zahtev pretvorijo v spremenljivke HTTP_ z velikimi črkami. Glava z imenom Proxy lahko zato postane HTTP_PROXY. Zaupanje vanjo kot v nastavitev odhodnih povezav bi podatkom zahteve omogočilo izbiro posrednika. Zahteva curl po malih črkah se izogne tej preslikavi; izjema za HTTPS in spremenljivke drugih protokolov ne velja povsem enako.
Če sprememba spremenljivke ne spremeni poti
Najprej poiščite spremenljivko za posamezni protokol, nato rezervno ALL_PROXY. Ustrezno pravilo NO_PROXY lahko obide posrednika. Pomembne so tudi različice z malimi črkami in konkurenčne definicije. Ta zanka za lupino, podobno Unixu, javlja prisotnost, ne da bi izpisala vrednosti, ki bi lahko vsebovale poverilnice:
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
doneNavedene definicije preglejte lokalno. Če se katera znova pojavi, preverite konfiguracijo zagonske lupine, storitve, IDE-ja, vsebnika ali CI-ja. Prisotnost pokaže možne vhode; ne pove, katera vrednost je prevladala.
Če želite eno zahtevo ločiti od teh izbir posrednika, navedite končno točko in prazen seznam obhodov:
curl --proxy http://127.0.0.1:8080 --noproxy '' --connect-timeout 5 --max-time 15 --verbose https://example.com/Za dovoljeno primerjavo z neposredno povezavo:
curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/Ti ukazi pomagajo razlikovati podedovano pot od napake povezljivosti. Preberite rezultate preizkusa posrednika po stopnjah, preden spreminjate dodatne nastavitve okolja. Pravila spremenljivk curl uporabljajte za curl; lastno izvajalno okolje aplikacije lahko posrednike odkriva in združuje drugače.