Zašto curl zanemaruje HTTP_PROXY
Namjerni izuzetak curl-a za HTTP_PROXY, varijable po protokolu, ALL_PROXY i predvidljivo testiranje proksija putem okruženja.
Za HTTP odredišta postavite http_proxy malim slovima. curl namjerno zanemaruje HTTP_PROXY velikim slovima. U POSIX ljusci:
http_proxy=http://127.0.0.1:8080 curl http://example.com/
https_proxy=http://127.0.0.1:8080 curl https://example.com/Ove dodjele važe samo za naredbu koja slijedi odmah iza njih. Zamijenite primjer adrese osluškivanja svojim proksijem; za poređenje javnih krajnjih tačaka izaberite kandidata s liste HTTP proksija. Varijabla https_proxy bira putanju za HTTPS odredišta; vrijednost s http:// i dalje označava obični HTTP proksi koji može napraviti tunel do odredišta. PowerShell i Windows komandne ljuske koriste drugačiju sintaksu dodjele.
Zašto je upravo ovaj zapis velikim slovima opasan
CGI okruženja mogu pretvoriti zaglavlja dolaznih zahtjeva u varijable HTTP_ velikim slovima. Zaglavlje nazvano Proxy zato može postati HTTP_PROXY. Povjerenje u njega kao postavku izlaznih veza omogućilo bi podacima zahtjeva da biraju proksi. Zahtjev curl-a za malim slovima izbjegava to preslikavanje; izuzetak se ne primjenjuje jednako na HTTPS i varijable drugih protokola.
Ako promjena varijable ne mijenja putanju
Prvo potražite varijablu za određeni protokol, a zatim rezervnu ALL_PROXY. Odgovarajuće pravilo NO_PROXY može zaobići proksi. Važne su i varijante malim slovima i konkurentne definicije. Ova petlja za Unix-sličnu ljusku prijavljuje prisustvo bez ispisa vrijednosti koje mogu sadržavati pristupne podatke:
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
doneLokalno pregledajte navedene definicije. Ako se neka ponovo pojavi, provjerite konfiguraciju pokretačke ljuske, servisa, IDE-a, kontejnera ili CI-ja. Prisustvo ukazuje na moguće ulaze; ne govori koja je vrijednost prevladala.
Da biste jedan zahtjev izdvojili od tih izbora proksija, navedite i krajnju tačku i praznu listu zaobilaženja:
curl --proxy http://127.0.0.1:8080 --noproxy '' --connect-timeout 5 --max-time 15 --verbose https://example.com/Za dozvoljeno poređenje s direktnom vezom:
curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/Ove naredbe pomažu razlikovati naslijeđenu putanju od greške povezivanja. Pročitajte rezultate testa proksija po fazama prije daljnjeg mijenjanja postavki okruženja. Pravila varijabli curl-a primjenjujte na curl; vlastito izvršno okruženje aplikacije može drugačije otkrivati i objedinjavati proksije.