VVinaProxy

ERR_TUNNEL_CONNECTION_FAILED -virheen korjaus välityspalvelimella

Updated:

Kun https://-sivu ladataan välityspalvelimen kautta, selain lähettää CONNECT-pyynnön ja odottaa välityspalvelimen avaavan tunnelin sivustolle. ERR_TUNNEL_CONNECTION_FAILED ilmenee, kun välityspalvelin vastaa pyyntöön virheellä hyväksynnän sijaan. Ongelmana on, että Chrome ei kerro virheen syytä, joten ensimmäinen tehtävä on selvittää todellinen tilakoodi.

Välityspalvelimet, jotka toimivat Puppeteerilla ja Playwrightilla

Kaksi toistamaamme tapausta

Molemmat testattiin testivälityspalvelimella, joka on tässä esitetty dokumentaatio-osoitteella 203.0.113.10:8080 ja tunnuksilla user123:pass456. Tavallisessa Chrome-ikkunassa 407-tilanne ei johda tunnelivirheeseen, vaan Chrome avaa kirjautumisikkunan välityspalvelimen käyttäjätunnusta ja salasanaa varten. Koodista 407 johtuvat tunnelivirheet ilmenevätkin pääasiassa automaatiotyökaluissa ja sovelluksissa, jotka eivät pysty pyytämään salasanaa.

Välityspalvelimen vastaus CONNECT-pyyntöönChrome näyttääcurl näyttää
407 ilman mahdollisuutta syöttää salasanaa (headless Chrome)ERR_TUNNEL_CONNECTION_FAILEDcurl: (56) CONNECT tunnel failed, response 407
502, koska välityspalvelin ei saa yhteyttä sivustoonERR_TUNNEL_CONNECTION_FAILEDcurl: (56) CONNECT tunnel failed, response 502

Syyt todennäköisyysjärjestyksessä

  • Automaatioskripti ei lähetä kirjautumistietoja. Chromen --proxy-server-valitsin hyväksyy vain palvelinosoitteen ja portin, ei user:pass-muotoa. Headless Puppeteer tai Selenium saa tilakoodin 407 ja ilmoittaa tunnelivirheestä.
  • Puhelinsovellus salasanasuojatun Wi-Fi-välityspalvelimen takana. Sovelluksessa ei ole kirjautumisikkunaa, joten HTTPS-yhteys katkeaa, vaikka selain toimii edelleen.
  • Välityspalvelin ei saa yhteyttä kohteeseen. Se palauttaa CONNECT-pyyntöön koodin 502; 502 Bad Gateway -sivu käsittelee tätä tarkemmin.
  • Vain tietyt sivustot epäonnistuvat. Kohdesivusto estää yhteyden tai on alhaalla, kun taas muut sivustot toimivat saman välityspalvelimen kautta.

Selvitä todellinen koodi yhdellä curl-komennolla

Aja komento curl -v -x http://user123:[email protected]:8080 https://example.com omilla arvoillasi. Tarkista rivi heti kohdan > CONNECT example.com:443 HTTP/1.1 jälkeen: 407 tarkoittaa, että kannattaa seurata 407-opasta; 502 viittaa kohdesivustoon tai välityspalvelimen jälkeiseen reittiin. Jos et halua käyttää päätettä, liitä rivi välityspalvelimen tarkistustyökaluun, joka ilmoittaa samoissa tilanteissa auth failed (407) tai HTTP 502.

Korjaukset eri ympäristöissä

  • Puppeteer: säilytä --proxy-server=http://host:port käynnistyksessä ja kutsu page.authenticate({ username, password }) ennen sivulle siirtymistä. Kattava esimerkki löytyy Puppeteer-välityspalvelinoppaasta.
  • Playwright: välitä proxy: { server, username, password }, kun käynnistät selaimen, jolloin Playwright vastaa 407-pyyntöön puolestasi; katso Playwright.
  • Selenium: Chrome ei tue user:pass-tietoja komentoriviltä; Selenium-opas esittelee toimivat vaihtoehdot.
  • Chrome Windowsissa: jos kirjautumisikkuna ei koskaan tule näkyviin, tarkista, estääkö jokin välityspalvelinlaajennus sen, ja kokeile uudelleen ikkunassa ilman laajennuksia.
  • Puhelimet: jos sovellus vaatii todennetun välityspalvelimen, käytä välityspalvelinsovellusta, joka tukee user:pass-muotoa, kuten Android-asennusoppaassa neuvotaan.

Vaihe vaiheelta

  1. 1

    Tunnista CONNECT-vastaus

    Aja curl -v -x välityspalvelintiedoillasi tai liitä tiedot tarkistustyökaluun nähdäksesi, palauttaako välityspalvelin koodin 407 vai 502.

  2. 2

    Koodille 407: määritä kirjautumistiedot oikein

    Käytä skripteissä kirjaston todennustoimintoa sen sijaan, että lisäisit user:pass-tiedot valitsimeen --proxy-server.

  3. 3

    Koodille 502: kokeile toista sivustoa

    Lataa jokin tunnettu suuri sivusto, kuten example.com, saman välityspalvelimen kautta. Jos se toimii, ongelma on alkuperäisessä kohdeosoitteessa.

  4. 4

    Suorita uudelleen ja varmista ulospäin näkyvä IP

    Kun tunneli aukeaa, avaa oma IP samassa selaimessa varmistaaksesi, että liikenne kulkee välityspalvelimen kautta.

Usein kysytyt kysymykset

Miksi http-sivut latautuvat, mutta https-sivut eivät toimi?

Tavallinen http ei vaadi CONNECT-pyyntöä, vaan välityspalvelin välittää pyynnön suoraan. Vain https avaa tunnelin, joten tunnelivirheet ilmenevät ainoastaan sen yhteydessä.

Mikä aiheuttaa virheen ERR_TUNNEL_CONNECTION_FAILED Androidilla?

Useimmiten kyseessä on sovellus, joka ei pysty välittämään käyttäjätunnusta ja salasanaa Wi-Fi-välityspalvelimelle. Kokeile samaa sivua Androidin Chromella; jos Chrome pystyy kysymään tunnukset ja lataamaan sivun, ongelma on sovelluksessa.

Voinko määrittää user:pass-tiedot valitsimeen --proxy-server?

Et. Chrome jättää kirjautumistiedot kyseisessä valitsimessa huomiotta, mikä johtaa 407-koodiin ja tunnelivirheeseen. Tunnistaudu sen sijaan Puppeteerilla, Playwrightilla tai laajennuksen avulla.

Poistaako vaihtaminen SOCKS5-yhteyteen tunnelivirheen?

Vain jos tilauksesi tukee SOCKS5-yhteyttä. VinaProxy tarjoaa sekä HTTP(S)- että SOCKS5-yhteydet; valitse protokolla, joka näkyy tilauksessasi hallintapaneelissa, sillä yhteensopimattomuus aiheuttaa muita virheitä.

Välityspalvelimet, jotka toimivat Puppeteerilla ja Playwrightilla

VinaProxy-välityspalvelimet käyttävät standardia user:pass-kirjautumista, jota suositut automaatiokirjastot tukevat suoraan.

Katso hinnat

Related articles

Proxy-virheet
Näin korjaat virheen 407 Proxy Authentication Required
Virhe 407 Proxy Authentication Required tarkoittaa, että välityspalvelin vastasi, mutta hylkäsi kirjautumisen. Katso curl-esimerkit, syyt ja korjausohjeet.
Proxy-virheet
502 Bad Gateway -proxyvirheet: selvitä virheen aiheuttaja
502 Bad Gateway proxyn kautta tarkoittaa, että välipalvelin ei saanut kelvollista vastausta. Näin selvität aitojen curl-tulosteiden avulla, kummassa vika on.
Proxy-asennus
Kuinka määrittää todennettu proxy Puppeteerissa (Node.js)
Määritä todennetut HTTP(S)-proxyt Node.js Puppeteerissa --proxy-server-valitsimella ja await page.authenticate() -kutsulla. Kopioi toimivat esimerkit.
Proxy-asennus
Kuinka määrittää välityspalvelin Playwrightissa (selain- ja kontekstikohtainen todennus)
Määritä todennetut HTTP(S)-proxyt Playwrightiin Node.js- ja Python-kielillä. Aja eristettyjä staattisia IP-osoitteita BrowserContexteissa. Kopioi esimerkit.
Proxy-asennus
Kuinka ottaa käyttöön todennettu välityspalvelin Selenium WebDriverissa
Määritä tunnus:salasana-todennetut HTTP(S)-välityspalvelimet Selenium WebDriveriin selenium-wiren tai Chromen onAuthRequired-laajennuksen avulla. Katso koodi.
Ilmaiset työkalut
Proxy Checker: Tarkista välityspalvelimesi verkossa
Ilmainen proxy checker: liitä jopa 100 välityspalvelinta muodossa ip:port:user:pass ja tarkista tila, ulkoinen IP ja viive. Lue, mitä kukin virhe tarkoittaa.
Proxy-asennus
Proxyn määrittäminen Google Chromessa
Määritä VinaProxy HTTP(S) -proxyt Google Chromeen vaihtamatta koko käyttöjärjestelmän IP-osoitetta laajennusten, --proxy-server-lippujen tai profiilien avulla.
Proxy-asennus
Proxyn määrittäminen Windows 10:ssä ja Windows 11:ssä
Määritä VinaProxy HTTP(S) -proxyt Windows 10:lle ja 11:lle järjestelmäasetusten (WinINET), PowerShell-ympäristömuuttujien tai netsh winhttp -komennon avulla.