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

Прычыны ў парадку верагоднасці

  • Скрыпт аўтаматызацыі не адпраўляе ўліковыя даныя. Сцяг --proxy-server у Chrome прымае толькі хост і порт, але не 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 азначае, што проксі адказаў, але адхіліў уваход. Глядзіце рэальны вывад 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 у BrowserContexts. Скапіюйце прыклады.
Налада проксі
Як наладзіць проксі з аўтэнтыфікацыяй у 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.