Для HTTP-адрасоў задайце зменную http_proxy малымі літарамі. curl наўмысна ігнаруе HTTP_PROXY вялікімі літарамі. У 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/

Гэтыя прысваенні дзейнічаюць толькі для каманды, якая ідзе адразу пасля іх. Замяніце адрас праслухоўвання з прыкладу сваім проксі; для параўнання публічных вузлоў выберыце кандыдата са спіса HTTP-проксі. Зменная https_proxy выбірае маршрут да HTTPS-адрасоў; значэнне з http:// па-ранейшаму азначае звычайны HTTP-проксі, здольны стварыць тунэль да мэты. PowerShell і камандныя абалонкі Windows ужываюць іншы сінтаксіс прысваення.

Чым небяспечны менавіта гэты запіс вялікімі літарамі

CGI-асяроддзі могуць ператвараць загалоўкі ўваходных запытаў у зменныя HTTP_ вялікімі літарамі. Таму загаловак з імем Proxy можа стаць HTTP_PROXY. Калі давяраць яму як наладзе выходных злучэнняў, даныя запыту змогуць выбіраць проксі. Патрабаванне curl ужываць малыя літары пазбягае такога адлюстравання; для HTTPS і зменных іншых пратаколаў выключэнне дзейнічае не зусім гэтак жа.

Калі змена зменнай не змяняе маршрут

Спачатку шукайце зменную канкрэтнага пратакола, потым рэзервовую ALL_PROXY. Адпаведнае правіла NO_PROXY можа абысці проксі. Варыянты малымі літарамі і канкурэнтныя азначэнні таксама маюць значэнне. Гэты цыкл для Unix-падобнай абалонкі паведамляе пра наяўнасць, не друкуючы значэнні, якія могуць утрымліваць уліковыя даныя:

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

Праверце пералічаныя азначэнні лакальна. Калі нейкае з'яўляецца зноў, праверце налады абалонкі запуску, службы, IDE, кантэйнера або CI. Наяўнасць паказвае магчымыя ўваходныя налады, а не тое, якое значэнне атрымала перавагу.

Каб ізаляваць адзін запыт ад гэтых варыянтаў выбару проксі, задайце і канцавы пункт, і пусты спіс абыходу:

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

Для параўнання з прамым злучэннем, калі яно дазволена:

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

Гэтыя каманды дапамагаюць адрозніць успадкаваны маршрут ад збою сувязі. Разбярыце вынікі праверкі проксі па этапах, перш чым змяняць іншыя налады асяроддзя. Правілы зменных curl ужывайце да curl; уласнае асяроддзе выканання праграмы можа інакш выяўляць і аб'ядноўваць проксі.

Падобныя артыкулы