VVinaProxy

ERR_TUNNEL_CONNECTION_FAILED oplossen met een proxy

Updated:

Om een https://-pagina via een proxy te laden, stuurt de browser een CONNECT-verzoek en wacht tot de proxy een tunnel naar de site opent. ERR_TUNNEL_CONNECTION_FAILED verschijnt wanneer de proxy dit verzoek beantwoordt met een fout in plaats van toe te stemmen. Het addertje onder het gras is dat Chrome niet vermeldt om welke fout het gaat, dus de eerste stap is het achterhalen van de daadwerkelijke code.

Proxies die werken met Puppeteer en Playwright

Twee situaties die we hebben gereproduceerd

Beide tests zijn uitgevoerd met een testproxy, hier weergegeven met het documentatie-adres 203.0.113.10:8080 en user123:pass456. In een normaal Chrome-venster leidt de 407-situatie niet tot een tunnelfout; Chrome opent dan een inlogvenster voor de gebruikersnaam en het wachtwoord van de proxy. Tunnelfouten veroorzaakt door een 407 treden daarom vooral op in automatiseringstools en in apps die niet om een wachtwoord kunnen vragen.

Proxy beantwoordt CONNECT metChrome toontcurl toont
407 zonder mogelijkheid om een wachtwoord in te voeren (headless Chrome)ERR_TUNNEL_CONNECTION_FAILEDcurl: (56) CONNECT tunnel failed, response 407
502 omdat de proxy de site niet kan bereikenERR_TUNNEL_CONNECTION_FAILEDcurl: (56) CONNECT tunnel failed, response 502

Oorzaken, op volgorde van waarschijnlijkheid

  • Een automatiseringsscript stuurt geen inloggegevens mee. De vlag --proxy-server van Chrome accepteert alleen host en poort, geen user:pass. Headless Puppeteer of Selenium ontvangt een 407 en meldt een tunnelfout.
  • Een telefoon-app achter een met een wachtwoord beveiligde wifiproxy. De app heeft geen inlogvenster, waardoor HTTPS niet werkt terwijl de browser wel functioneert.
  • De proxy kan het doel niet bereiken. Deze retourneert 502 op CONNECT; de 502 Bad Gateway-pagina behandelt dit uitgebreid.
  • Slechts enkele sites werken niet. De bestemming blokkeert het verzoek of is offline, terwijl andere sites via dezelfde proxy wel werken.

Achterhaal de echte code met één curl-opdracht

Voer curl -v -x http://user123:[email protected]:8080 https://example.com uit met je eigen gegevens. Kijk naar de regel direct na > CONNECT example.com:443 HTTP/1.1: een 407 betekent dat je de 407-handleiding moet volgen; een 502 wijst op de bestemming of het netwerkpad achter de proxy. Gebruik je liever geen terminal, plak de regel dan in de proxy checker, die voor dezelfde situaties auth failed (407) of HTTP 502 meldt.

Oplossingen per omgeving

  • Puppeteer: behoud --proxy-server=http://host:port bij het opstarten en roep page.authenticate({ username, password }) aan vóór het navigeren. Een compleet voorbeeld vind je in de Puppeteer proxy-handleiding.
  • Playwright: geef proxy: { server, username, password } mee bij het starten van de browser, waarna Playwright de 407 automatisch afhandelt; zie Playwright.
  • Selenium: Chrome accepteert geen user:pass via de opdrachtregel; de Selenium-handleiding toont werkbare opties.
  • Chrome op Windows: verschijnt het inlogvenster nooit, controleer dan of een proxy-extensie dit onderdrukt en probeer het opnieuw in een venster zonder extensies.
  • Telefoons: gebruik voor apps die een geauthenticeerde proxy vereisen een proxy-app met ondersteuning voor user:pass, zoals beschreven in de Android-installatiehandleiding.

Stappenplan

  1. 1

    Identificeer het CONNECT-antwoord

    Voer curl -v -x uit met je proxygegevens, of plak ze in de checker, om te controleren of de proxy 407 of 502 retourneert.

  2. 2

    Bij 407: geef inloggegevens correct op

    Gebruik in scripts de authenticatiefunctie van de bibliotheek in plaats van user:pass in --proxy-server te plaatsen.

  3. 3

    Bij 502: probeer een andere site

    Laad een grote website zoals example.com via dezelfde proxy. Als dat werkt, ligt het probleem bij de oorspronkelijke bestemming.

  4. 4

    Voer opnieuw uit en controleer het exit-IP

    Zodra de tunnel tot stand is gebracht, ga je in diezelfde browser naar mijn IP om te bevestigen dat het verkeer via de proxy loopt.

Veelgestelde vragen

Waarom laden http-pagina's wel en falen https-pagina's?

Gewone http vereist geen CONNECT; de proxy stuurt het verzoek rechtstreeks door. Alleen https opent een tunnel, waardoor tunnelfouten alleen daar optreden.

Wat veroorzaakt ERR_TUNNEL_CONNECTION_FAILED op Android?

Meestal een app die de gebruikersnaam en het wachtwoord niet kan doorgeven aan een wifiproxy. Probeer dezelfde pagina in Chrome voor Android; als Chrome er wel om kan vragen en de pagina laadt, ligt het probleem bij de app.

Kan ik user:pass opnemen in --proxy-server?

Nee. Chrome negeert inloggegevens in die vlag, wat leidt tot een 407 en de tunnelfout. Authenticeer in plaats daarvan via Puppeteer, Playwright of een extensie.

Verhelpt overschakelen naar SOCKS5 de tunnelfout?

Alleen als je bestelling SOCKS5 betreft. VinaProxy biedt zowel HTTP(S) als SOCKS5; kies het protocol dat bij je bestelling in het dashboard staat, want een mismatch veroorzaakt andere fouten.

Proxies die werken met Puppeteer en Playwright

Proxies van VinaProxy gebruiken een standaard user:pass-aanmelding die populaire automatiseringsbibliotheken direct ondersteunen.

Bekijk prijzen

Related articles

Proxyfouten
Hoe los je 407 Proxy Authentication Required op
Een 407 Proxy Authentication Required-fout betekent dat de proxy je login weigert. Bekijk echte curl-output, de oorzaken en oplossingen per app.
Proxyfouten
502 Bad Gateway-proxyfouten: ontdek wie de fout veroorzaakt
Een 502 Bad Gateway via een proxy betekent geen geldig antwoord. Ontdek of de fout bij de proxy of de website ligt, met concrete curl-voorbeelden.
Proxy-configuratie
Zo stel je een geauthenticeerde proxy in in Puppeteer (Node.js)
Configureer geauthenticeerde HTTP(S)-proxy's in Node.js Puppeteer met de optie --proxy-server en await page.authenticate(). Kopieer de werkende voorbeelden.
Proxy-configuratie
Een proxy instellen in Playwright (browser- en per-context authenticatie)
Configureer geauthenticeerde HTTP(S)-proxy's in Playwright voor Node.js en Python en draai meerdere statische IP's in BrowserContexts. Kopieer de voorbeelden.
Proxy-configuratie
Een geauthenticeerde proxy instellen in Selenium WebDriver
Configureer HTTP(S)-proxy's met gebruikersnaam en wachtwoord in Selenium WebDriver via selenium-wire of een Chrome onAuthRequired-extensie. Bekijk de code.
Gratis tools
Proxy Checker: Test je proxy's online
Gratis proxy checker: plak tot 100 proxy's als ip:port:user:pass en test online status, exit-IP en latentie. Ontdek wat elke foutmelding betekent.
Proxy-configuratie
Proxy configureren in Google Chrome
Stel VinaProxy HTTP(S)-proxy's in Chrome in zonder uw hele OS-IP te wijzigen, via extensies, --proxy-server-flags of afzonderlijke gebruikersprofielen.
Proxy-configuratie
Proxy configureren op Windows 10 en Windows 11
Configureer VinaProxy HTTP(S)-proxy's op Windows 10 en Windows 11 via WinINET-systeeminstellingen, PowerShell-omgevingsvariabelen of netsh winhttp.