ERR_TUNNEL_CONNECTION_FAILED lagfært við notkun milliþjóns
Updated:
Til að hlaða https://-síðu í gegnum milliþjón sendir vafrinn CONNECT-beiðni og bíður eftir að milliþjónninn opni göng að vefsvæðinu. ERR_TUNNEL_CONNECTION_FAILED birtist þegar milliþjónninn svarar þeirri beiðni með villu í stað þess að samþykkja hana. Gallinn er sá að Chrome gefur ekki upp hvaða villa kom upp, svo fyrsta verkið er að finna raunverulega villukóðann.
Tvö tilvik sem við endurgerðum
Bæði tilvikin voru prófuð gagnvart prófunarmilliþjóni, sem hér er sýndur með dæmavistfanginu 203.0.113.10:8080 og user123:pass456. Í venjulegum Chrome-glugga verður 407-tilvikið ekki að gangavillu; Chrome opnar þess í stað innskráningarglugga fyrir notandanafn og aðgangsorð milliþjónsins. Gangavillur sem stafa af 407 koma því aðallega fram í sjálfvirkniverkfærum og forritum sem geta ekki beðið um aðgangsorð.
| Milliþjónn svarar CONNECT með | Chrome sýnir | curl sýnir |
|---|---|---|
407 án þess að hægt sé að slá inn aðgangsorð (headless Chrome) | ERR_TUNNEL_CONNECTION_FAILED | curl: (56) CONNECT tunnel failed, response 407 |
502 vegna þess að milliþjónninn nær ekki sambandi við vefsvæðið | ERR_TUNNEL_CONNECTION_FAILED | curl: (56) CONNECT tunnel failed, response 502 |
Orsakir, líklegastar fyrst
- Sjálfvirkniskrifta sendir engar innskráningarupplýsingar.
--proxy-server-rofinn í Chrome tekur aðeins við hýsli og gátt, ekki user:pass. Höfuðlaus (headless) Puppeteer eða Selenium fær 407 og tilkynnir um gangabilun. - Símaforrit á bak við lykilorðsvarinn Wi-Fi-milliþjón. Forritið hefur engan innskráningarglugga, svo HTTPS virkar ekki á meðan vafrinn virkar áfram.
- Milliþjónninn nær ekki til áfangastaðarins. Hann skilar 502 við CONNECT; síðan um 502 Bad Gateway fjallar ítarlega um þetta.
- Aðeins sum vefsvæði bila. Áfangastaðurinn er niðri eða lokar á aðgang á meðan önnur vefsvæði virka í gegnum sama milliþjón.
Finndu raunverulega kóðann með einni curl-skipun
Keyrðu curl -v -x http://user123:[email protected]:8080 https://example.com með þínum eigin gildum. Skoðaðu línuna rétt á eftir > CONNECT example.com:443 HTTP/1.1: 407 þýðir að fylgja eigi leiðarvísinum um 407; 502 bendir á áfangastaðinn eða tengileiðina á bak við milliþjóninn. Ef þú vilt frekar ekki nota skipanalínu geturðu límt línuna inn í milliþjónaprófarann, sem gefur til kynna auth failed (407) eða HTTP 502 við sömu aðstæður.
Lausnir eftir umhverfi
- Puppeteer: haltu
--proxy-server=http://host:portvið ræsingu og kallaðu ápage.authenticate({ username, password })áður en flakkað er. Ítarlegt dæmi er í Puppeteer-leiðarvísinum um milliþjóna. - Playwright: sendu
proxy: { server, username, password }þegar vafrinn er ræstur og Playwright svarar 407-villunni fyrir þig; sjá Playwright. - Selenium: Chrome tekur ekki við user:pass á skipanalínunni; Selenium-leiðarvísirinn sýnir raunhæfar leiðir.
- Chrome á Windows: ef innskráningarglugginn birtist aldrei skaltu athuga hvort milliþjónaviðbót sé að bæla hann niður og prófa aftur í glugga án viðbóta.
- Símar: fyrir forrit sem þurfa milliþjón með auðkenningu skal nota milliþjónaforrit sem styður user:pass eins og lýst er í uppsetningarleiðarvísi fyrir Android.
Skref fyrir skref
- 1
Greindu CONNECT-svarið
Keyrðu
curl -v -xmeð milliþjónslínunni þinni eða límdu hana inn í prófarann til að sjá hvort milliþjónninn skili 407 eða 502. - 2
Fyrir 407: gefðu upp réttar innskráningarupplýsingar
Í skriftum skal nota auðkenningarkrók safnsins í stað þess að setja user:pass í
--proxy-server. - 3
Fyrir 502: prófaðu annað vefsvæði
Hladdu stóru vefsvæði eins og example.com í gegnum sama milliþjón. Ef það virkar liggur vandamálið hjá upprunalega áfangastaðnum.
- 4
Keyrðu aftur og staðfestu IP-tölu milliþjónsins
Þegar göngin opnast skaltu fara á mín IP-tala í sama vafra til að staðfesta að umferðin fari í gegnum milliþjóninn.
Algengar spurningar
Af hverju hlaðast http-síður á meðan https-síður bila?
Venjulegt http þarf ekkert CONNECT; milliþjónninn framsendir beiðnina beint. Aðeins https opnar göng, þannig að gangavillur koma eingöngu fram þar.
Hvað veldur ERR_TUNNEL_CONNECTION_FAILED á Android?
Oftast forrit sem getur ekki sent notandanafn og aðgangsorð á Wi-Fi-milliþjón. Prófaðu sömu síðu í Chrome fyrir Android; ef Chrome getur beðið um upplýsingarnar og hlaðið síðunni liggur vandinn í forritinu.
Get ég sett user:pass inn í --proxy-server?
Nei. Chrome hunsar auðkenningarupplýsingar í þeim rofa, sem leiðir til 407 og gangavillunnar. Auðkenndu þig frekar í gegnum Puppeteer, Playwright eða vafraviðbót.
Kemur það í veg fyrir gangavilluna að skipta yfir í SOCKS5?
Aðeins ef pöntunin þín er SOCKS5. VinaProxy býður upp á bæði HTTP(S) og SOCKS5; veldu samskiptaregluna sem pöntunin sýnir í stjórnborðinu, þar sem misræmi veldur öðrum villum.
Milliþjónar sem virka með Puppeteer og Playwright
Milliþjónar VinaProxy nota hefðbundna user:pass-innskráningu sem vinsæl sjálfvirknisöfn styðja sjálfkrafa.
Sjá verð