Замяніце 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/

Адрас зваротнай пятлі азначае пункт праслухоўвання на вашым уласным камп’ютары. Каманда відавочна выбірае яго, ачышчае спіс абыходу 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 — на аўтэнтыфікацыю або палітыку проксі. Перад перадачай падрабязнага вываду праглядзіце яго, бо ён можа змяшчаць ідэнтыфікацыйныя звесткі.

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

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