Stel die kleinletterveranderlike http_proxy vir HTTP-bestemmings. curl ignoreer doelbewus die hooflettervorm HTTP_PROXY. In 'n POSIX-dop:

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

Hierdie toekennings geld slegs vir die opdrag wat direk daarop volg. Vervang die voorbeeld se luisterpunt met jou instaanbediener; kies vir 'n vergelyking van openbare eindpunte 'n kandidaat uit die HTTP-instaanbedienerlys. Die veranderlike https_proxy kies 'n roete vir HTTPS-bestemmings; 'n http://-waarde beteken steeds 'n gewone HTTP-instaanbediener wat 'n tonnel na die bestemming kan maak. PowerShell en Windows-opdragdoppe gebruik ander toekenningsintaksis.

Waarom hierdie spesifieke hooflettervorm gevaarlik is

CGI-omgewings kan inkomende versoekopskrifte na hoofletterveranderlikes met HTTP_ omskakel. 'n Versoekopskrif genaamd Proxy kan dus HTTP_PROXY word. Om dit as uitgaande konfigurasie te vertrou, sou versoekdata die instaanbediener laat kies. curl se vereiste van kleinletters vermy dié kartering; die uitsondering geld nie op presies dieselfde manier vir HTTPS en ander protokolveranderlikes nie.

As 'n verandering aan die veranderlike nie die roete verander nie

Soek eers 'n protokolspesifieke veranderlike, en dan die terugval ALL_PROXY. 'n Ooreenstemmende NO_PROXY-reël kan die instaanbediener omseil. Kleinlettervariante en mededingende definisies maak ook saak. Hierdie lus vir 'n Unix-agtige dop meld slegs aanwesigheid, sonder om waardes met moontlike aanmeldbesonderhede te druk:

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

Ondersoek die gelyste definisies plaaslik. As een weer verskyn, kyk na die konfigurasie van die dop wat die proses begin, diens, IDE, houer of CI. Aanwesigheid wys moontlike invoere; dit sê nie watter waarde voorrang gekry het nie.

Om een versoek van dié instaanbedienerkeuses te isoleer, verskaf sowel die eindpunt as 'n leë omseillys:

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

Vir 'n toegelate direkte vergelyking:

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

Hierdie opdragte help om 'n geërfde roete van 'n verbindingsfout te onderskei. Lees die instaanbedienertoets se resultate stap vir stap voordat jy nog omgewingsinstellings verander. Pas curl se veranderlikereëls op curl toe; 'n toepassing se eie looptydomgewing kan instaanbedieners anders ontdek en saamvoeg.

Verwante artikels