VVinaProxy

Åtgärda ERR_TUNNEL_CONNECTION_FAILED med en proxy

Updated:

För att läsa in en https://-sida via en proxy skickar webbläsaren en CONNECT-förfrågan och väntar på att proxyn öppnar en tunnel till webbplatsen. ERR_TUNNEL_CONNECTION_FAILED visas när proxyn svarar med ett felmeddelande i stället för att godkänna förfrågan. Problemet är att Chrome inte talar om vilket fel det gäller, så det första steget är att ta reda på den faktiska koden.

Proxyservrar som fungerar med Puppeteer och Playwright

Två fall vi återskapade

Båda kördes mot en testproxy, här omskriven med dokumentationsadressen 203.0.113.10:8080 och user123:pass456. I ett vanligt Chrome-fönster leder 407-fallet inte till ett tunnelfel; Chrome öppnar i stället en inloggningsruta för proxyns användarnamn och lösenord. Tunnelfel orsakade av 407 uppstår därför främst i automatiseringsverktyg och i appar som inte kan fråga efter ett lösenord.

Proxyn svarar på CONNECT medChrome visarcurl visar
407 utan möjlighet att ange lösenord (headless Chrome)ERR_TUNNEL_CONNECTION_FAILEDcurl: (56) CONNECT tunnel failed, response 407
502 eftersom proxyn inte kan nå webbplatsenERR_TUNNEL_CONNECTION_FAILEDcurl: (56) CONNECT tunnel failed, response 502

Orsaker, med de troligaste först

  • Ett automatiseringsskript skickar inga inloggningsuppgifter. Chromes flagga --proxy-server tar endast emot värd och port, inte user:pass. Headless Puppeteer eller Selenium får 407 och rapporterar ett tunnelfel.
  • En mobilapp bakom en lösenordsskyddad Wi-Fi-proxy. Appen saknar inloggningsruta, vilket gör att HTTPS slutar fungera medan webbläsaren fortfarande fungerar.
  • Proxyn kan inte nå målet. Den returnerar 502 på CONNECT; sidan om 502 Bad Gateway förklarar detta mer ingående.
  • Endast vissa webbplatser fungerar inte. Destinationen blockerar eller ligger nere medan andra webbplatser fungerar via samma proxy.

Hitta den faktiska koden med ett enda curl-kommando

Kör curl -v -x http://user123:[email protected]:8080 https://example.com med dina egna värden. Titta på raden direkt efter > CONNECT example.com:443 HTTP/1.1: 407 innebär att du bör följa 407-guiden; 502 pekar på destinationen eller nätverksvägen bakom proxyn. Föredrar du att inte använda en terminal kan du klistra in raden i proxytestaren, som visar auth failed (407) eller HTTP 502 för samma situationer.

Lösningar för olika miljöer

  • Puppeteer: behåll --proxy-server=http://host:port vid start och anropa page.authenticate({ username, password }) före navigering. Ett fullständigt exempel finns i Puppeteer-proxyguiden.
  • Playwright: skicka med proxy: { server, username, password } när webbläsaren startas så hanterar Playwright 407-svaret automatiskt; se Playwright.
  • Selenium: Chrome tar inte emot user:pass på kommandoraden; Selenium-guiden visar fungerande alternativ.
  • Chrome på Windows: om inloggningsrutan aldrig visas kontrollerar du om ett proxytillägg blockerar den, och provar sedan igen i ett fönster utan tillägg.
  • Mobiltelefoner: för appar som kräver en autentiserad proxy använder du en proxyapp med stöd för user:pass enligt installationsguiden för Android.

Steg för steg

  1. 1

    Identifiera CONNECT-svaret

    Kör curl -v -x med din proxyrad, eller klistra in den i testaren, för att se om proxyn returnerar 407 eller 502.

  2. 2

    För 407: ange inloggningsuppgifter korrekt

    I skript använder du bibliotekets autentiseringskrok i stället för att placera user:pass i --proxy-server.

  3. 3

    För 502: prova en annan webbplats

    Läs in en stor webbplats som example.com via samma proxy. Om det fungerar är det den ursprungliga destinationen som är problemet.

  4. 4

    Kör igen och bekräfta utgående IP

    När tunneln har öppnats besöker du min IP-adress i samma webbläsare för att bekräfta att trafiken går via proxyn.

Vanliga frågor

Varför fungerar http-sidor medan https-sidor misslyckas?

Vanlig http behöver inget CONNECT; proxyn vidarebefordrar förfrågan direkt. Endast https öppnar en tunnel, så tunnelfel uppstår bara där.

Vad orsakar ERR_TUNNEL_CONNECTION_FAILED på Android?

Oftast en app som inte kan skicka vidare användarnamn och lösenord till en Wi-Fi-proxy. Prova samma sida i Chrome för Android; om Chrome kan fråga efter uppgifterna och läsa in sidan ligger problemet i appen.

Kan jag placera user:pass i --proxy-server?

Nej. Chrome ignorerar inloggningsuppgifter i den flaggan, vilket leder till 407 och tunnelfel. Autentisera i stället via Puppeteer, Playwright eller ett webbläsartillägg.

Försvinner tunnelfelet om jag byter till SOCKS5?

Bara om din beställning gäller SOCKS5. VinaProxy erbjuder både HTTP(S) och SOCKS5; välj det protokoll som din beställning visar i kontrollpanelen, eftersom en felmatchning orsakar andra fel.

Proxyservrar som fungerar med Puppeteer och Playwright

VinaProxy-proxyservrar använder standardinloggning med user:pass som populära automatiseringsbibliotek hanterar direkt.

Se priser

Related articles

Proxyfel
Så åtgärdar du 407 Proxy Authentication Required
Ett 407 Proxy Authentication Required-fel innebär att proxyn svarade men nekade inloggningen. Se curl-utdata, vanliga orsaker och lösningar per program.
Proxyfel
502 Bad Gateway-proxyfel: ta reda på vem som skickade det
502 Bad Gateway via en proxy betyder att en mellanserver inte fick ett giltigt svar. Ta reda på om proxyn eller webbplatsen felar, med riktiga curl-utdata.
Proxykonfiguration
Så konfigurerar du en autentiserad proxy i Puppeteer (Node.js)
Konfigurera autentiserade HTTP(S)-proxys i Node.js Puppeteer med flaggan --proxy-server och await page.authenticate(). Kopiera våra färdiga kodexempel.
Proxykonfiguration
Så konfigurerar du en proxy i Playwright (webbläsare och per-kontext-autentisering)
Konfigurera autentiserade HTTP(S)-proxys i Playwright för Node.js och Python, och kör flera isolerade statiska IP-adresser i BrowserContexts. Kopiera exemplen.
Proxykonfiguration
Så konfigurerar du en autentiserad proxy i Selenium WebDriver
Konfigurera HTTP(S)-proxyer med användarnamn och lösenord i Selenium WebDriver med selenium-wire eller ett Chrome onAuthRequired-tillägg. Se koden här.
Gratis verktyg
Proxytestare: Testa dina proxyer online
Gratis proxytestare: klistra in upp till 100 proxyer som ip:port:user:pass och testa online för status, exit-IP och latens. Lär dig vad felen betyder.
Proxykonfiguration
Så konfigurerar du proxy i Google Chrome
Konfigurera VinaProxy HTTP(S)-proxys i Google Chrome utan att ändra datorns IP via tillägg, --proxy-server-flaggor eller separata användarprofiler.
Proxykonfiguration
Så konfigurerar du proxy i Windows 10 och Windows 11
Konfigurera VinaProxy HTTP(S)-proxys i Windows 10 och Windows 11 via WinINET-systeminställningar, miljövariabler i PowerShell eller netsh winhttp.