HTTP paskirties adresams nustatykite mažosiomis raidėmis rašomą http_proxy. curl sąmoningai nepaiso didžiosiomis raidėmis rašomo HTTP_PROXY. POSIX komandų aplinkoje:

http_proxy=http://127.0.0.1:8080 curl http://example.com/
https_proxy=http://127.0.0.1:8080 curl https://example.com/

Šie priskyrimai galioja tik iškart po jų einančiai komandai. Pavyzdžio klausymo adresą pakeiskite savo tarpiniu serveriu; viešiems galiniams taškams palyginti pasirinkite kandidatą iš HTTP tarpinių serverių sąrašo. Kintamasis https_proxy parenka kelią į HTTPS paskirties adresus; reikšmė su http:// vis tiek reiškia įprastą HTTP tarpinį serverį, galintį sukurti tunelį iki paskirties. PowerShell ir Windows komandų aplinkose naudojama kitokia priskyrimo sintaksė.

Kodėl pavojinga būtent ši rašyba didžiosiomis raidėmis

CGI aplinkos gali gaunamų užklausų antraštes paversti didžiosiomis raidėmis rašomais HTTP_ kintamaisiais. Taigi antraštė vardu Proxy gali tapti HTTP_PROXY. Pasitikint ja kaip išeinančių ryšių nuostata, užklausos duomenims būtų leista parinkti tarpinį serverį. curl reikalavimas rašyti mažosiomis raidėmis išvengia šio susiejimo; HTTPS ir kitų protokolų kintamiesiems išimtis netaikoma visiškai taip pat.

Jei pakeitus kintamąjį kelias nesikeičia

Pirmiausia ieškokite protokolo kintamojo, tada atsarginio ALL_PROXY. Atitinkanti NO_PROXY taisyklė gali apeiti tarpinį serverį. Svarbios ir mažosiomis raidėmis rašomos atmainos bei konkuruojantys apibrėžimai. Šis Unix tipo komandų aplinkos ciklas praneša tik apie buvimą, neišvesdamas reikšmių, kuriose gali būti prisijungimo duomenų:

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
done

Nurodytus apibrėžimus patikrinkite vietoje. Jei kuris nors atsiranda iš naujo, tikrinkite paleidžiančios komandų aplinkos, tarnybos, IDE, konteinerio ar CI konfigūraciją. Buvimas nurodo galimus įvesties šaltinius, bet ne tai, kuri reikšmė turėjo pirmenybę.

Norėdami vieną užklausą atskirti nuo šių tarpinio serverio pasirinkimų, nurodykite ir galinį tašką, ir tuščią apėjimo sąrašą:

curl --proxy http://127.0.0.1:8080 --noproxy '' --connect-timeout 5 --max-time 15 --verbose https://example.com/

Palyginimui tiesioginiu ryšiu, kai tai leidžiama:

curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/

Šios komandos padeda atskirti paveldėtą kelią nuo ryšio gedimo. Skaitykite tarpinio serverio testo rezultatus etapais prieš keisdami daugiau aplinkos nuostatų. curl kintamųjų taisykles taikykite curl; pačios programos vykdymo aplinka gali kitaip aptikti ir sujungti tarpinių serverių nuostatas.

Susiję straipsniai