Fiks ERR_TUNNEL_CONNECTION_FAILED med proxy
Updated:
For å laste en https://-side via en proxy sender nettleseren en CONNECT-forespørsel og venter på at proxyen åpner en tunnel til nettstedet. ERR_TUNNEL_CONNECTION_FAILED oppstår når proxyen svarer med en feil i stedet for å godta forespørselen. Ulempen er at Chrome ikke forteller deg hvilken feil det gjelder, så første steg er å finne den faktiske koden.
To tilfeller vi gjenskapte
Begge ble kjørt mot en testproxy, her omskrevet med dokumentasjonsadressen 203.0.113.10:8080 og user123:pass456. I et vanlig Chrome-vindu blir ikke 407-tilfellet til en tunnelfeil; Chrome åpner i stedet et påloggingsvindu for proxyens brukernavn og passord. Tunnelfeil forårsaket av en 407 dukker derfor hovedsakelig opp i automatiseringsverktøy og i apper som ikke kan be om passord.
| Proxy svarer CONNECT med | Chrome viser | curl viser |
|---|---|---|
407 uten mulighet til å angi passord (headless Chrome) | ERR_TUNNEL_CONNECTION_FAILED | curl: (56) CONNECT tunnel failed, response 407 |
502 fordi proxyen ikke når nettstedet | ERR_TUNNEL_CONNECTION_FAILED | curl: (56) CONNECT tunnel failed, response 502 |
Årsaker, mest sannsynlige først
- Et automatiseringsskript sender ingen påloggingsinformasjon. Chromes
--proxy-server-flagg godtar kun vert og port, ikke bruker:passord. Headless Puppeteer eller Selenium mottar en 407 og rapporterer en tunnelfeil. - En mobilapp bak en passordbeskyttet Wi-Fi-proxy. Appen har ingen påloggingsdialog, så HTTPS slutter å virke mens nettleseren fortsatt fungerer.
- Proxyen når ikke målet. Den returnerer 502 til CONNECT; 502 Bad Gateway-siden dekker dette grundig.
- Kun enkelte nettsteder feiler. Destinasjonen blokkerer eller er nede, mens andre nettsteder fungerer via samme proxy.
Finn den faktiske koden med én curl-kommando
Kjør curl -v -x http://user123:[email protected]:8080 https://example.com med dine egne verdier. Se på linjen rett etter > CONNECT example.com:443 HTTP/1.1: en 407 betyr at du bør følge 407-guiden; en 502 peker mot destinasjonen eller ruten bak proxyen. Hvis du foretrekker å slippe terminalen, kan du lime inn linjen i proxy-sjekkeren, som rapporterer auth failed (407) eller HTTP 502 for de samme situasjonene.
Løsninger etter miljø
- Puppeteer: behold
--proxy-server=http://host:portved oppstart og kallpage.authenticate({ username, password })før navigering. Komplett eksempel i Puppeteer proxy-veiledningen. - Playwright: send inn
proxy: { server, username, password }når du starter nettleseren, så svarer Playwright på 407 for deg; se Playwright. - Selenium: Chrome godtar ikke bruker:passord på kommandolinjen; Selenium-veiledningen viser fungerende alternativer.
- Chrome på Windows: hvis påloggingsvinduet aldri vises, kontroller om en proxy-utvidelse blokkerer det, og prøv igjen i et vindu uten utvidelser.
- Mobiler: for apper som krever en autentisert proxy, bruk en proxy-app som støtter bruker:passord slik det beskrives i Android-oppsettsguiden.
Trinn for trinn
- 1
Identifiser CONNECT-svaret
Kjør
curl -v -xmed din proxy-linje, eller lim den inn i sjekkeren, for å finne ut om proxyen returnerer 407 eller 502. - 2
For 407: oppgi påloggingsinformasjon riktig
I skript bør du bruke bibliotekets autentiserings-hook i stedet for å legge bruker:passord inn i
--proxy-server. - 3
For 502: prøv et annet nettsted
Last et stort nettsted som example.com via samme proxy. Hvis det fungerer, er det den opprinnelige destinasjonen som er problemet.
- 4
Kjør på nytt og bekreft utgående IP
Når tunnelen åpnes, besøk min IP i samme nettleser for å bekrefte at trafikken går gjennom proxyen.
Ofte stilte spørsmål
Hvorfor laster http-sider mens https-sider feiler?
Vanlig http krever ingen CONNECT; proxyen videresender forespørselen direkte. Kun https åpner en tunnel, så tunnelfeil oppstår bare der.
Hva forårsaker ERR_TUNNEL_CONNECTION_FAILED på Android?
Oftest en app som ikke kan sende brukernavn og passord til en Wi-Fi-proxy. Prøv samme side i Chrome for Android; hvis Chrome kan be om innlogging og laste siden, ligger problemet i appen.
Kan jeg legge bruker:passord inn i --proxy-server?
Nei. Chrome ignorerer påloggingsinformasjon i det flagget, noe som fører til en 407 og tunnelfeil. Autentiser via Puppeteer, Playwright eller en utvidelse i stedet.
Vil bytte til SOCKS5 fjerne tunnelfeilen?
Kun dersom bestillingen din er SOCKS5. VinaProxy tilbyr både HTTP(S) og SOCKS5; velg protokollen bestillingen din viser i kontrollpanelet, ettersom feil samsvar fører til andre feil.
Proxyer som fungerer med Puppeteer og Playwright
VinaProxy-proxyer bruker standard innlogging med bruker:passord som populære automatiseringsbiblioteker støtter rett ut av boksen.
Se priser