Փոխարինեք 127.0.0.1:8080-ը ձեր ծառայության կամ HTTP պրոքսիների ցանկի վերջնակետով և սա գործարկեք անվնաս HTTPS նպատակակետի նկատմամբ․

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

Loopback հասցեն նշանակում է ձեր սեփական համակարգչի լսող հանգույցը։ Հրամանը բացահայտ ընտրում է այն, այս կանչի համար մաքրում է curl-ի շրջանցման ցանկը և տրամադրում է հինգ վայրկյան կապի հաստատման ու տասնհինգ վայրկյան ընդհանուր ժամանակի համար։ Այն չի փոխում դիտարկիչի և համակարգի պրոքսիի կարգավորումները։

Օգտագործեք curl-ի իրական գործարկվող ֆայլը, եթե հրամանային միջավայրը curl-ը դարձնում է այլ ծրագրի կեղծանուն․ curl --version-ը նույնականացնում է կառուցումը։ Եթե լսող հանգույցն ինքն է պահանջում TLS, օգտագործեք նրա փաստաթղթերում նշված պրոքսիի URL սխեման։

Կարդացեք չորս արդյունք, ոչ թե հաջողության մեկ նշան

  1. Միացում ընտրված պրոքսիին․ հասցեն և պորտը հասանելի են։
  2. CONNECT-ն ընդունվել է․ պրոքսին թունել է բացել դեպի HTTPS նպատակակետը։
  3. Նպատակակետի վկայագիրը ստուգվել է․ TLS-ն ավարտվել է սպասվող վստահության ստուգումներով։
  4. Նպատակակետի պատասխանը ստացվել է․ ստուգեք կարգավիճակն ու բովանդակությունը՝ ըստ հավելվածին անհրաժեշտ արդյունքի։

Աշխատող թունելից հետո էլ նպատակակետը կարող է վերադարձնել 403 կամ 429։ curl-ը կարող է հաջող ավարտվել նաև HTTP սխալի պատասխան ստանալուց հետո, ուստի գրանցեք և՛ պատասխանի կարգավիճակը, և՛ curl-ի սխալի արդյունքը։ Միայն TCP կապը կամ հաջող CONNECT-ը բավարար չէ։

Հակիրճ արդյունք կրկնվող համեմատությունների համար

Unix-ի նման հրամանային միջավայրում անտեսեք պատասխանի մարմինը և տպեք թունելի կարգավիճակը, նպատակակետի կարգավիճակը, կապի մյուս կողմն ու անցած ժամանակը․

curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --silent --show-error --output /dev/null --write-out 'http=%{http_code} connect=%{http_connect} peer=%{remote_ip} total=%{time_total}\n' https://example.com/

http_connect-ը նկարագրում է թունելի պատասխանը, http_code-ը՝ վերջնական HTTP պատասխանը։ remote_ip-ը curl-ի կապի մյուս կողմն է, ոչ թե պրոքսիի ելքի հասցեի անկախ չափում։ Այլ համակարգերում փոխարինեք /dev/null-ը կամ պահպանեք պատասխանի մարմինը։

Եթե ստուգումը ձախողվում է, գտեք կապի հաստատման կամ փոխանցման ձախողված քայլը և նույն նպատակակետը համեմատեք ուղիղ միացմամբ այնտեղ, որտեղ այդ ուղին թույլատրված է․

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

--noproxy '*'-ը շրջանցում է պրոքսիները։ Երկու ուղիներում էլ վկայագրի ստուգման ձախողումը հուշում է ընդհանուր վստահության խնդիր, իսկ հաջող ուղիղ կապը՝ մերժված CONNECT-ի հետ, հուշում է պրոքսիի նույնականացման կամ քաղաքականության խնդիր։ Մանրամասն ելքը տարածելուց առաջ ստուգեք այն, քանի որ կարող է պարունակել նույնականացնող տեղեկություններ։

Պահպանեք վերջնակետը, թիրախը և ժամանակային նշումը արդյունքի հետ։ Սա հաստատում է, թե ինչն է աշխատել այդ հարցման համար․ ապագա հասանելիությունը, գաղտնիությունն ու ծանրաբեռնվածության տակ կատարողականը առանձին ապացույցներ են պահանջում։

Առնչվող հոդվածներ