Праверка HTTP-проксі праз curl
Праверце злучэнне з проксі, HTTPS-тунэль, статус адказу і правілы абыходу абмежаваным па часе тэстам curl без змены глабальнага проксі прылады.
Замяніце 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 проксі з яго дакументацыі.
Чытайце чатыры вынікі, а не адну прыкмету поспеху
- Злучэнне з выбраным проксі: адрас і порт даступныя.
- CONNECT прыняты: проксі адкрыў тунэль да HTTPS-мэты.
- Сертыфікат мэты правераны: TLS завершаны з чаканымі праверкамі даверу.
- Адказ мэты атрыманы: праверце статус і змесціва з улікам выніку, патрэбнага праграме.
Нават пасля працоўнага тунэля мэта можа вярнуць 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 — на аўтэнтыфікацыю або палітыку проксі. Перад перадачай падрабязнага вываду праглядзіце яго, бо ён можа змяшчаць ідэнтыфікацыйныя звесткі.
Захавайце канчатковы пункт, мэту і часовую пазнаку разам з вынікам. Гэта фіксуе, што спрацавала для гэтага запыту; будучая даступнасць, прыватнасць і прадукцыйнасць пад нагрузкай патрабуюць асобных доказаў.