За 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; собствената среда за изпълнение на приложението може да открива и обединява проксита по друг начин.

Подобни статии