curl эмне үчүн HTTP_PROXY өзгөрмөсүн эске албайт
curl программасынын HTTP_PROXY үчүн атайын өзгөчөлүгү, протокол өзгөрмөлөрү, ALL_PROXY жана чөйрө аркылуу алдын ала түшүнүктүү прокси текшерүүсү.
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 үчүн колдонуңуз; колдонмонун өз аткаруу чөйрөсү проксилерди башкача таап, бириктириши мүмкүн.