Kort antwoord
Wat betekent ERR_TUNNEL_CONNECTION_FAILED bij een proxy?
net::ERR_TUNNEL_CONNECTION_FAILED betekent dat Chrome de proxy vroeg een tunnel te openen naar een HTTPS-site en de proxy niet 200 Connection established antwoordde. De browser verbergt de echte status. Bij CrawlRelay residentiële proxies is de oorzaak meestal ontbrekende credentials in Playwright of Puppeteer, gevolgd door een doel dat de gateway niet kan bereiken. Reproduceer met curl -v om de echte code te zien.
ERR_TUNNEL_CONNECTION_FAILED in één oogopslag
| Fout | ERR_TUNNEL_CONNECTION_FAILED |
|---|---|
| Type | Chromium netwerkfout |
| Verzonden door | Je browser, na afwijzing of mislukking van de proxy CONNECT aanvraag |
| Gedefinieerd in | CONNECT method: RFC 9110, section 9.3.6 |
| Opnieuw proberen? | Pas nadat je de status daarachter vindt |
| Eerst controleren | Herproduceer met curl -v om de echte status van de CONNECT te zien |
Wat betekent ERR_TUNNEL_CONNECTION_FAILED?
Om een HTTPS-pagina via een HTTP-proxy te laden, stuurt de browser eerst CONNECT host:443. Als de proxy 200 antwoordt, start de browser TLS binnen de tunnel. Elk ander antwoord, zoals 407, 403 of 502, stopt de poging, en Chromium rapporteert één generieke fout.
Daarom vertelt deze fout je waar het misging, bij de tunnel, maar niet waarom. Het waarom is de statuscode die de proxy stuurde, die je kunt zien met curl.
Hoe ziet ERR_TUNNEL_CONNECTION_FAILED eruit in Python, curl, Node.js en browsers?
Dezelfde fout verschijnt anders in elk hulpmiddel. Dit zijn de berichten om in je logs te zoeken:
- Playwright:
page.goto: net::ERR_TUNNEL_CONNECTION_FAILED at https://... - Puppeteer:
Error: net::ERR_TUNNEL_CONNECTION_FAILED at https://... - Chrome adresbalk: 'Deze site is niet bereikbaar' met de code
ERR_TUNNEL_CONNECTION_FAILED - Selenium met Chrome: dezelfde code binnen een
WebDriverException
Wat veroorzaakt ERR_TUNNEL_CONNECTION_FAILED?
Waarschijnlijk eerst:
- Geen inloggegevens verzonden (verborgen 407). Chrome negeert een gebruikersnaam en wachtwoord binnen
--proxy-server. - Een geweigerde bestemming (verborgen 403), zoals een categorie die door het gebruiksbeleid van de proxy is geblokkeerd.
- Een onbereikbare bestemming (verborgen 502 of 504): een dode host, een tikfout of een DNS-fout bij de uitgang.
- Een verkeerde poort: de browser naar de SOCKS5-poort wijzen alsof het HTTP is, of andersom.
Hoe diagnosticeer ik ERR_TUNNEL_CONNECTION_FAILED stap voor stap?
- Voer dezelfde URL uit via curl met
-v(commando hieronder) en lees de regel naCONNECT. - Een
407betekent inloggegevens; een403betekent een geweigerde bestemming; een502of504betekent de bestemming of de uitgang. - Bevestig dat de browser de HTTP-poort gebruikt voor een
http://proxyserver. - Test een simpele pagina zoals
https://api.ipify.orgvoor je echte doel.
# Use the URL that fails; with https://api.ipify.org instead, you test the gateway alone.
# "HTTP/1.1 200 Connection established" first, then the site's own status: the site answered.
curl -v -x http://USERNAME:[email protected]:7777 https://TARGET_URL
# Same test through the SOCKS5 port, with DNS resolved at the exit
curl -v --socks5-hostname gw.crawlrelay.com:7778 --proxy-user USERNAME:PASSWORD https://TARGET_URLHoe los ik ERR_TUNNEL_CONNECTION_FAILED op?
- Playwright: geef
server,usernameenpassworddoor in deproxyoptie, per browser of per context. Zie de Playwright gids. - Puppeteer: start met
--proxy-server=http://host:porten roeppage.authenticate()aan voordat je de eerstegotodoet. Zie de Puppeteer gids. - Selenium: draai een kleine lokale doorstuurder die de inloggegevens toevoegt. Zie de Selenium gids.
- Controleer de bestemming aan de hand van onze Acceptable Use Policy.
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(proxy={
"server": "http://gw.crawlrelay.com:7777",
"username": "USERNAME-country-us",
"password": "PASSWORD",
})
page = browser.new_page()
response = page.goto("https://api.ipify.org")
print(response.status, page.inner_text("body"))
browser.close()Moet ik opnieuw proberen na ERR_TUNNEL_CONNECTION_FAILED?
Herprobeer alleen als je de verborgen status kent. Een verborgen 407 of 403 blijft voor altijd doorlopen; pas de configuratie aan. Een verborgen 502 of 504 kan opnieuw geprobeerd worden via een nieuwe uitgang, zoals elke gateway-fout.
Hoe geldt ERR_TUNNEL_CONNECTION_FAILED voor CrawlRelay?
De HTTP-poort van CrawlRelay transporteert HTTPS via CONNECT tunnels, die ieder Chromium-gebaseerd hulpmiddel ondersteunt. Gebruik de HTTP-poort voor browsers: Chromium ondersteunt geen SOCKS5 met gebruikersnaam en wachtwoord.
Gateway: gw.crawlrelay.com, poort 7777 (HTTP, HTTPS via CONNECT) en poort 7778 (SOCKS5). Gebruikersnaamformaat: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. Gerelateerd: 407 Proxy Authentication Required · ERR_PROXY_CONNECTION_FAILED · Playwright gids.
ERR_TUNNEL_CONNECTION_FAILED: vragen die ontwikkelaars stellen
Waarom werkt curl wel maar toont Playwright ERR_TUNNEL_CONNECTION_FAILED?
Omdat curl de inloggegevens vanuit de proxy-URL stuurt, terwijl Chromium de inloggegevens in het adres van de proxyserver negeert. Bij Playwright geef je username en password als aparte velden van de proxy optie door. Bij Puppeteer roep je page.authenticate() aan vóór navigatie.
Kan ik SOCKS5 proxies met authenticatie gebruiken in Chrome?
Niet direct. Chromium ondersteunt SOCKS5 proxies, maar niet SOCKS5 authenticatie met gebruikersnaam en wachtwoord. Gebruik daarom de HTTP-poort van de gateway, die HTTPS-sites via CONNECT tunnels behandelt, of draai een lokale doorstuurder die voor de browser authenticatie verzorgt.
Wordt ERR_TUNNEL_CONNECTION_FAILED door de website veroorzaakt?
Zelden direct. De tunnel is tussen de browser en de proxy, dus de fout ontstaat voordat de website een TLS-handshake ziet. De website kan indirect de oorzaak zijn wanneer die onbereikbaar is en de proxy met 502 of 504 op het CONNECT-verzoek reageert.
Andere proxyfouten in deze referentie
HTTP-statuscodes
- 401 Unauthorized vs 407
- 403 Forbidden
- 407 Proxy Authentication Required
- 429 Too Many Requests
- 502 Bad Gateway
- 503 Service Unavailable
- 504 Gateway Timeout
Browser- en clientfouten
Verbindings- en TLS-fouten
Residentiële proxy's met documentatie die de faalgevallen beschrijft
CrawlRelay residentiële proxy's van US$ 0,50/GB, verkeer dat nooit verloopt.