Pro cíle HTTP nastavte proměnnou http_proxy malými písmeny. curl záměrně ignoruje HTTP_PROXY velkými písmeny. V shellu 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/

Tato přiřazení platí pouze pro příkaz, který bezprostředně následuje. Nahraďte ukázkový naslouchající endpoint svou proxy; pro srovnání veřejných endpointů vyberte kandidáta ze seznamu HTTP proxy. Proměnná https_proxy vybírá trasu pro cíle HTTPS; hodnota s http:// stále znamená běžnou HTTP proxy schopnou vytvořit tunel k cíli. PowerShell a příkazové shelly Windows používají jinou syntaxi přiřazení.

Proč je právě tento zápis velkými písmeny nebezpečný

Prostředí CGI mohou převádět hlavičky příchozích požadavků na proměnné HTTP_ velkými písmeny. Hlavička nazvaná Proxy se tak může změnit na HTTP_PROXY. Důvěřovat jí jako konfiguraci odchozích spojení by umožnilo datům požadavku vybrat proxy. Požadavek curl na malá písmena tomuto mapování předchází; výjimka neplatí totožně pro HTTPS a proměnné jiných protokolů.

Když změna proměnné nezmění trasu

Nejprve hledejte proměnnou konkrétního protokolu, potom záložní ALL_PROXY. Odpovídající pravidlo NO_PROXY může proxy obejít. Důležité jsou i varianty malými písmeny a soupeřící definice. Tato smyčka pro unixový shell hlásí přítomnost bez výpisu hodnot, které mohou obsahovat přihlašovací údaje:

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

Uvedené definice prověřte místně. Objevuje-li se některá znovu, zkontrolujte konfiguraci spouštěcího shellu, služby, IDE, kontejneru nebo CI. Přítomnost odhaluje možné vstupy, nikoli hodnotu, která získala přednost.

Chcete-li jeden požadavek oddělit od těchto voleb proxy, zadejte endpoint i prázdný seznam výjimek:

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

Pro povolené srovnání s přímým připojením:

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

Tyto příkazy pomáhají odlišit zděděnou trasu od selhání spojení. Projděte výsledky testu proxy po jednotlivých fázích, než začnete měnit další nastavení prostředí. Pravidla proměnných curl vztahujte na curl; vlastní běhové prostředí aplikace může proxy zjišťovat a slučovat jinak.

Související články