VVinaProxy

ERR_TUNNEL_CONNECTION_FAILED klaidos taisymas naudojant proxy

Updated:

Norėdama įkelti https:// puslapį per proxy, naršyklė siunčia CONNECT užklausą ir laukia, kol proxy atvers tunelį į svetainę. ERR_TUNNEL_CONNECTION_FAILED rodoma tada, kai proxy į šią užklausą atsako klaida, o ne patvirtinimu. Sunkumas tas, kad Chrome nenurodo, kokia tai klaida, todėl pirmiausia reikia išsiaiškinti tikrąjį kodą.

Proxy serveriai, suderinami su Puppeteer ir Playwright

Du mūsų atkurti atvejai

Abu atvejai buvo išbandyti su bandomuoju proxy, čia pateiktu su dokumentaciniu adresu 203.0.113.10:8080 ir user123:pass456. Įprastame Chrome lange 407 klaida netampa tunelio klaida – vietoje to Chrome atidaro prisijungimo langą proxy naudotojo vardui ir slaptažodžiui įvesti. Todėl tunelio klaidos dėl 407 kodo dažniausiai pasitaiko automatizavimo įrankiuose ir programose, kurios negali pateikti užklausos slaptažodžiui įvesti.

Proxy atsakas į CONNECTChrome rodocurl rodo
407 be galimybės įvesti slaptažodį (headless Chrome)ERR_TUNNEL_CONNECTION_FAILEDcurl: (56) CONNECT tunnel failed, response 407
502, nes proxy negali pasiekti svetainėsERR_TUNNEL_CONNECTION_FAILEDcurl: (56) CONNECT tunnel failed, response 502

Priežastys, pradedant labiausiai tikėtinomis

  • Automatizavimo scenarijus neperduoda prisijungimo duomenų. Chrome vėliavėlė --proxy-server priima tik serverio adresą ir prievadą, bet ne user:pass. „Headless“ Puppeteer arba Selenium gauna 407 ir praneša apie tunelio klaidą.
  • Telefono programėlė naudoja slaptažodžiu apsaugotą „Wi-Fi“ proxy. Programėlė neturi prisijungimo lango, todėl HTTPS ryšys nutrūksta, nors naršyklė tebeveikia.
  • Proxy negali pasiekti tikslo. Į CONNECT atsakoma 502 kodu; tai išsamiai paaiškinta 502 Bad Gateway puslapyje.
  • Neveikia tik kai kurios svetainės. Tikslinė svetainė blokuoja užklausas arba yra nepasiekiama, nors kitos svetainės per tą patį proxy veikia.

Sužinokite tikrąjį kodą viena curl komanda

Paleiskite curl -v -x http://user123:[email protected]:8080 https://example.com su savo reikšmėmis. Pažiūrėkite į eilutę iškart po > CONNECT example.com:443 HTTP/1.1: 407 reiškia, kad reikia vadovautis 407 gidu; 502 rodo problemą tikslinėje svetainėje arba maršrute už proxy. Jei nenorite naudoti terminalo, įklijuokite eilutę į proxy tikrintuvą, kuris tokiose situacijose pateikia pranešimą auth failed (407) arba HTTP 502.

Sprendimai pagal aplinką

  • Puppeteer: paleidžiant palikite --proxy-server=http://host:port ir prieš naršydami iškvieskite page.authenticate({ username, password }). Išsamų pavyzdį rasite Puppeteer proxy gide.
  • Playwright: paleisdami naršyklę perduokite proxy: { server, username, password }, ir Playwright pats atsakys į 407 užklausą; žr. Playwright.
  • Selenium: Chrome nepriima user:pass komandų eilutėje; veikiančius variantus rasite Selenium gide.
  • Chrome sistemoje Windows: jei prisijungimo langas nepasirodo, patikrinkite, ar jo neblokuoja proxy plėtinys, ir pabandykite iš naujo lange be plėtinių.
  • Telefonai: programėlėms, kurioms reikalingas autentifikuotas proxy, naudokite proxy programėlę su user:pass palaikymu, kaip aprašyta Android nustatymo gide.

Žingsnis po žingsnio

  1. 1

    Nustatykite CONNECT atsaką

    Paleiskite curl -v -x su savo proxy duomenimis arba įklijuokite eilutę į tikrintuvą, kad sužinotumėte, ar proxy grąžina 407, ar 502.

  2. 2

    Dėl 407: teisingai pateikite prisijungimo duomenis

    Scenarijuose naudokite bibliotekos autentifikavimo funkciją, užuot nurodę user:pass parametre --proxy-server.

  3. 3

    Dėl 502: išbandykite kitą svetainę

    Per tą patį proxy atidarykite didelę svetainę, pavyzdžiui, example.com. Jei ji veikia, problema yra pirminėje tikslinėje svetainėje.

  4. 4

    Paleiskite iš naujo ir patikrinkite išėjimo IP

    Kai tunelis atsivers, toje pačioje naršyklėje apsilankykite puslapyje mano IP ir įsitikinkite, kad srautas nukreipiamas per proxy.

Dažnai užduodami klausimai

Kodėl http puslapiai atsidaro, o https – ne?

Paprastam http protokolo ryšiui CONNECT nereikalingas – proxy nukreipia užklausą tiesiogiai. Tunelis atveriamas tik naudojant https, todėl tunelio klaidos pasitaiko tik ten.

Kas sukelia ERR_TUNNEL_CONNECTION_FAILED sistemoje Android?

Dažniausiai tai programėlė, kuri negali perduoti naudotojo vardo ir slaptažodžio „Wi-Fi“ proxy. Pabandykite atidaryti tą patį puslapį naudodami Chrome programėlę Android sistemoje; jei Chrome paprašo duomenų ir puslapį atveria, problema slypi programėlėje.

Ar galiu įrašyti user:pass į --proxy-server?

Ne. Chrome nepaiso šioje vėliavėlėje nurodytų prisijungimo duomenų, todėl kyla 407 klaida ir atsiranda tunelio triktis. Vietoj to autentifikuokitės per Puppeteer, Playwright arba plėtinį.

Ar perjungimas į SOCKS5 pašalins tunelio klaidą?

Tik tuo atveju, jei jūsų užsakymas yra SOCKS5. VinaProxy siūlo ir HTTP(S), ir SOCKS5; valdymo skydelyje pasirinkite savo užsakymą atitinkantį protokolą, nes nesutapimas sukelia kitas klaidas.

Proxy serveriai, suderinami su Puppeteer ir Playwright

VinaProxy proxy naudoja standartinį user:pass prisijungimą, kurį populiarios automatizavimo bibliotekos palaiko iš karto be papildomų nustatymų.

Žiūrėti kainas

Related articles

Proxy klaidos
Kaip ištaisyti 407 Proxy Authentication Required
Klaida 407 Proxy Authentication Required reiškia, kad proxy atsakė, bet atmetė prisijungimą. Peržiūrėkite priežastis, curl išvestį ir sprendimus programoms.
Proxy klaidos
502 Bad Gateway proxy klaidos: sužinokite, kas ją sukėlė
502 Bad Gateway per proxy reiškia, kad tarpinis serveris negavo atsako. Kaip sužinoti, kas kaltas – proxy ar svetainė, remiantis tikrais curl pavyzdžiais.
Proxy nustatymas
Kaip nustatyti autentifikuotą proxy Puppeteer (Node.js)
Konfigūruokite autentifikuotus HTTP(S) proxy Node.js Puppeteer su --proxy-server vėliavėle ir await page.authenticate(). Nukopijuokite veikiančius pavyzdžius.
Proxy nustatymas
Kaip nustatyti proxy Playwright (Browser ir Per-Context autentifikavimas)
Nustatykite autentifikuotus HTTP(S) proxy Playwright su Node.js ir Python bei paleiskite izoliuotus statinius IP per BrowserContexts. Kopijuokite pavyzdžius.
Proxy nustatymas
Kaip nustatyti autentifikuotą proxy Selenium WebDriver
Konfigūruokite HTTP(S) proxy su vartotojo vardu ir slaptažodžiu Selenium WebDriver naudodami selenium-wire arba Chrome onAuthRequired plėtinį. Žr. kodą.
Nemokami įrankiai
Proxy tikrintuvas: patikrinkite savo proxy internetu
Nemokamas proxy tikrintuvas: įklijuokite iki 100 proxy formatu ip:port:user:pass ir patikrinkite būseną, išorinį IP bei delsą. Sužinokite klaidų reikšmes.
Proxy nustatymas
Kaip sukonfigūruoti proxy naršyklėje Google Chrome
Konfigūruokite VinaProxy HTTP(S) proxy Google Chrome nekeisdami visos OS IP adreso: naudokite plėtinius, --proxy-server parametrus arba atskirus profilius.
Proxy nustatymas
Kaip sukonfigūruoti proxy „Windows 10“ ir „Windows 11“
Konfigūruokite VinaProxy HTTP(S) proxy „Windows 10“ ir „Windows 11“ naudodami WinINET sistemos parametrus, PowerShell kintamuosius arba netsh winhttp.