Замініть 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 — на автентифікацію або політику проксі. Перед поширенням докладного виводу перегляньте його, адже він може містити ідентифікаційні дані.

Збережіть кінцеву точку, ціль і часову позначку разом із результатом. Це фіксує, що спрацювало для конкретного запиту; майбутня доступність, приватність і продуктивність під навантаженням потребують окремих доказів.

Схожі статті