VVinaProxy

Як виправити ERR_TUNNEL_CONNECTION_FAILED під час роботи з проксі

Updated:

Щоб завантажити сторінку https:// через проксі, браузер надсилає запит CONNECT і чекає, поки проксі відкриє тунель до сайту. Помилка ERR_TUNNEL_CONNECTION_FAILED виникає, коли проксі замість підтвердження відповідає на цей запит помилкою. Складність полягає в тому, що Chrome не повідомляє, яка саме це помилка, тому перше завдання — з'ясувати справжній код.

Проксі, які працюють із Puppeteer та Playwright

Два випадки, які ми відтворили

Обидва випадки перевірено на тестовому проксі, наведеному тут із документаційною адресою 203.0.113.10:8080 та даними user123:pass456. У звичайному вікні Chrome відповідь 407 не призводить до помилки тунелю: натомість Chrome відкриває діалогове вікно авторизації для введення логіна й пароля до проксі. Тому помилки тунелю через 407 зазвичай виникають в інструментах автоматизації та додатках, які не можуть запитати пароль.

Проксі відповідає на CONNECT кодомChrome показуєcurl показує
407 без можливості ввести пароль (headless Chrome)ERR_TUNNEL_CONNECTION_FAILEDcurl: (56) CONNECT tunnel failed, response 407
502, оскільки проксі не може підключитися до сайтуERR_TUNNEL_CONNECTION_FAILEDcurl: (56) CONNECT tunnel failed, response 502

Причини за ймовірністю виникнення

  • Скрипт автоматизації не передає облікові дані. Прапорець Chrome --proxy-server приймає лише хост і порт, без user:pass. Безголовний (headless) Puppeteer або Selenium отримує 407 і повідомляє про збій тунелю.
  • Мобільний додаток працює через захищений паролем Wi-Fi-проксі. У додатку немає вікна авторизації, тому HTTPS перестає працювати, тоді як браузер продовжує відкривати сайти.
  • Проксі не може зв'язатися з цільовим ресурсом. Він повертає 502 у відповідь на CONNECT; докладніше це описано на сторінці 502 Bad Gateway.
  • Помилка виникає лише на деяких сайтах. Цільовий ресурс недоступний або блокує з'єднання, тоді як інші сайти через цей самий проксі відкриваються нормально.

Як дізнатися справжній код однією командою curl

Виконайте curl -v -x http://user123:[email protected]:8080 https://example.com, підставивши власні дані. Зверніть увагу на рядок одразу після > CONNECT example.com:443 HTTP/1.1: код 407 вказує на необхідність скористатися інструкцією з 407, а 502 свідчить про проблеми з цільовим сервером або маршрутом за межами проксі. Якщо ви не хочете користуватися терміналом, вставте рядок у чекер проксі, який покаже auth failed (407) або HTTP 502 у таких самих випадках.

Способи виправлення залежно від середовища

  • Puppeteer: залишайте --proxy-server=http://host:port під час запуску та викликайте page.authenticate({ username, password }) перед переходом на сторінку. Повний приклад наведено в інструкції з налаштування проксі для Puppeteer.
  • Playwright: передавайте proxy: { server, username, password } під час запуску браузера, і Playwright автоматично обробить 407; див. Playwright.
  • Selenium: Chrome не приймає user:pass у параметрах командного рядка; робочі варіанти описані в інструкції для Selenium.
  • Chrome на Windows: якщо вікно авторизації не з'являється, перевірте, чи не блокує його розширення для проксі, після чого повторіть спробу у вікні без розширень.
  • Телефони: для додатків, які потребують проксі з авторизацією, використовуйте спеціальний проксі-додаток із підтримкою user:pass, як описано в інструкції з налаштування для Android.

Покроково

  1. 1

    Визначте відповідь на CONNECT

    Виконайте curl -v -x із вашим рядком проксі або вставте його в чекер, щоб дізнатися, що повертає проксі: 407 чи 502.

  2. 2

    Для 407: правильно передайте облікові дані

    У скриптах використовуйте хук або метод авторизації відповідної бібліотеки замість додавання user:pass до --proxy-server.

  3. 3

    Для 502: спробуйте інший сайт

    Відкрийте через цей самий проксі будь-який стабільний ресурс на зразок example.com. Якщо він працює, проблема полягає в початковому цільовому сайті.

  4. 4

    Повторіть запуск і перевірте вихідну IP-адресу

    Коли тунель відкриється, перейдіть на сторінку моя IP-адреса в тому ж браузері, щоб переконатися, що трафік іде через проксі.

Часті запитання

Чому сторінки http відкриваються, а https — ні?

Для звичайного http запит CONNECT не потрібен: проксі просто перенаправляє запит далі. Тунель створюється лише для https, тому помилки тунелювання виникають виключно там.

Через що виникає ERR_TUNNEL_CONNECTION_FAILED на Android?

Найчастіше це стається через додаток, який не вміє передавати логін і пароль до Wi-Fi-проксі. Спробуйте відкрити ту саму сторінку в Chrome для Android: якщо Chrome запитує пароль і завантажує її, проблема саме в додатку.

Чи можна вказати user:pass усередині --proxy-server?

Ні. Chrome ігнорує облікові дані в цьому прапорці, що викликає помилку 407 і збій тунелю. Натомість авторизуйтеся через Puppeteer, Playwright або браузерне розширення.

Чи допоможе перехід на SOCKS5 позбутися помилки тунелю?

Лише якщо ваше замовлення передбачає SOCKS5. VinaProxy підтримує як HTTP(S), так і SOCKS5; обирайте протокол, указаний у вашому замовленні в панелі керування, адже їхня невідповідність викликає інші помилки.

Проксі, які працюють із Puppeteer та Playwright

Проксі від VinaProxy використовують стандартну авторизацію user:pass, яку популярні бібліотеки автоматизації підтримують із коробки.

Переглянути ціни

Related articles

Помилки проксі
Як виправити помилку 407 Proxy Authentication Required
Помилка 407 Proxy Authentication Required означає, що проксі відповів, але відхилив логін. Перегляньте вивід curl, типові причини та способи виправлення.
Помилки проксі
Помилки проксі 502 Bad Gateway: як визначити джерело
Помилка 502 Bad Gateway через проксі означає відсутність відповіді від сервера. Як з'ясувати, хто винен — проксі чи сайт, із реальними прикладами curl.
Налаштування проксі
Як налаштувати проксі з авторизацією в Puppeteer (Node.js)
Налаштуйте HTTP(S)-проксі з авторизацією у Puppeteer на Node.js через прапорець --proxy-server та await page.authenticate(). Скопіюйте готові приклади коду.
Налаштування проксі
Як налаштувати проксі у Playwright (Browser та Per-Context Auth)
Налаштуйте HTTP(S)-проксі з авторизацією у Playwright для Node.js та Python: запускайте статичні IP у різних BrowserContext. Скопіюйте готові приклади.
Налаштування проксі
Як налаштувати проксі з авторизацією в Selenium WebDriver
Налаштуйте HTTP(S)-проксі з авторизацією за логіном і паролем у Selenium WebDriver через selenium-wire або розширення Chrome onAuthRequired. Дивіться код.
Безкоштовні інструменти
Чекер проксі: перевірте ваші проксі онлайн
Безкоштовний чекер проксі: вставте до 100 проксі у форматі ip:port:user:pass і перевірте статус, вихідний IP та затримку онлайн. Дізнайтеся значення помилок.
Налаштування проксі
Як налаштувати проксі в Google Chrome
Налаштуйте HTTP(S)-проксі від VinaProxy у Google Chrome без зміни IP усієї системи: через розширення, прапорці --proxy-server або окремі профілі користувача.
Налаштування проксі
Як налаштувати проксі у Windows 10 та Windows 11
Налаштуйте HTTP(S)-проксі VinaProxy у Windows 10 та Windows 11 через системні параметри WinINET, змінні середовища PowerShell або netsh winhttp.