Hogyan javítható a 407 Proxy Authentication Required hiba
Updated:
A 407 jobb hír, mint amilyennek látszik: az eszköze elérte a proxyt, és a hálózati útvonal nyitva áll. A proxy csupán azt jelzi, hogy nem kapott érvényes felhasználónevet és jelszót. Ezért szinte minden 407-es hiba a hitelesítési adatok oldalán oldható meg, nem pedig a routerben vagy a tűzfalban.
A 407-es hiba okai a valószínűség sorrendjében
- Hibás vagy hiányzó felhasználónév/jelszó. Egyetlen elgépelt karakter, vagy a jelszóval együtt kimásolt záró szóköz. Ez magyarázza a legtöbb 407-es esetet.
- Rossz mezőbe beillesztett adatok. A teljes
ip:port:user:passsor a Host mezőbe kerül, vagy a felhasználónév a jelszó mezőjébe csúszik. Egyes eszközök felosztják a négy mezőt, mások nem. - Az alkalmazás sosem küld hitelesítési adatokat. Az operációs rendszer proxybeállítása csak a címet és a portot tárolja. Azok az alkalmazások, amelyek nem tudnak jelszót kérni, hitelesítési fejléc nélkül csatlakoznak, és 407-es választ kapnak.
- Különleges karakterek a proxy URL-jében. A
http://user:pass@host:portformátumban a jelszóban lévő@,:vagy#karaktereket százalékos kódolással kell megadni (a@például%40lesz), különben a karakterlánc rossz helyen válik ketté.
Hogyan néz ki a 407 a valóságban
A hibát egy tesztproxyn reprodukáltuk, amelyet itt a dokumentációs 203.0.113.10:8080 címmel és egy szándékosan hibás user123:pass456 párral mutatunk be. Egy HTTPS-oldal lekérésekor a curl -x http://user123:[email protected]:8080 https://example.com parancs a curl: (56) CONNECT tunnel failed, response 407 üzenetet írja ki. Egy sima HTTP-oldalnál a -w %{http_code} kapcsolóval a curl mindössze annyit ír ki: 407.
A -v kapcsoló hozzáadásával megnézheti, hogy a kliens egyáltalán elküldte-e a hitelesítési adatokat. A naplóban megjelenik a > CONNECT example.com:443 HTTP/1.1, majd a > Proxy-Authorization: Basic ..., és csak ezután a 407. Ha a Proxy-Authorization sor hiányzik, a kliens el sem küldte a bejelentkezési adatokat.
A VinaProxy proxyellenőrző ugyanezt az esetet auth failed (407) kimenettel jelzi. A felület nélküli headless Chrome, amely nem rendelkezik bejelentkezési ablakkal, ERR_TUNNEL_CONNECTION_FAILED hibaként jeleníti meg; lásd a tunnel hibaoldalt.
Megoldások környezetenként
- Windows és Chrome: A Chrome a Windows proxybeállításait követi (Gépház > Hálózat és internet > Proxy), amely csak a címet és a portot tárolja. Az első oldal betöltésekor a Chrome megnyit egy bejelentkezési ablakot a proxy felhasználónevéhez és jelszavához. Ha elgépelte, és a párbeszédpanel nem jelenik meg újra, zárja be az összes Chrome-ablakot, majd nyissa meg újra.
- Antidetect böngészők (AdsPower, GoLogin, GenLogin): a Host, Port, Username és Password értékeket külön mezőkben tartják. Törölje ki teljesen a jelszó mezőt, és illessze be újra ahelyett, hogy szerkesztené. Mezőről mezőre haladó útmutatás a GoLogin beállítási útmutatóban található.
- Telefonok: Az iPhone-on található egy Hitelesítés kapcsoló a Beállítások > Wi-Fi > (i) > Proxy konfigurálása menüpontban; ha kikapcsolva hagyja, 407-es hibát eredményez. Az Android általában csak a hostot és a portot fogadja el, így a bejelentkezést igénylő appok ehelyett általános csatlakozási hibát jelezhetnek.
- curl: adja át a
-U "user:pass"paramétert külön az URL-be történő beágyazás helyett, elkerülve a különleges karakterek okozta problémákat. - Python requests: állítsa be a
http://user:pass@host:portértéket aproxiesszótár mindkét (httpéshttps) kulcsához, a problémás jelszavakat pedig kódolja aurllib.parse.quotesegítségével.
A hitelesítési adatok helyesek, de a 407 megmarad
Ezután vesse össze a protokollokat. A VinaProxy user:pass bejelentkezésű HTTP(S) proxykat és SOCKS5 proxykat is kínál, ezért válassza a vezérlőpulton a megrendelésénél szereplő protokollt. Ha az ellenőrző not socks5 választ ad, akkor az adott port a HTTP protokollt használja, és nem szabad SOCKS5-ként beállítani.
Lépésről lépésre
- 1
Másolja ki a proxy sorát a vezérlőpultról
Nyissa meg a megrendelést a VinaProxy vezérlőpulton, és gépelés helyett másolja ki a teljes sort.
- 2
Futtassa le a proxyellenőrzővel
Illessze be a proxyellenőrzőbe. Az
auth failed (407)eredmény megerősíti, hogy hitelesítési probléma áll fenn, nem pedig hálózati. - 3
Adja meg újra pontosan a felhasználónevet és a jelszót
Törölje ki mindkét mezőt a szoftverben, majd illessze be őket újra kezdő vagy záró szóközök nélkül.
- 4
Egyeztesse a protokollt a megrendeléssel
Állítsa a proxy típusát pontosan a megrendelésben szereplő HTTP vagy SOCKS5 értékre, majd mentse el.
- 5
Kövesse nyomon a curl -v paranccsal, ha a hiba továbbra is fennáll
Futtassa a
curl -vparancsot a valós értékeivel, és ellenőrizze, hogy szerepel-e aProxy-Authorizationsor a 407 előtt.
Gyakran ismételt kérdések
Okozhatja a 407-es hibát az, hogy az internetszolgáltatóm (ISP) blokkolja a proxyt?
Nem. A 407-es választ maga a proxy küldi, vagyis a kapcsolat átjutott. A blokkolt útvonal időtúllépésként vagy visszautasított kapcsolatként jelenne meg; lásd a proxy időtúllépés oldalt.
Miért kéri a Chrome folyamatosan a proxy bejelentkezést?
Minden hibás megadás újabb 407-et eredményez, a Chrome pedig újra kéri az adatokat. Ellenőrizze a Caps Lock billentyűt, és ügyeljen arra, hogy a vietnámi vagy egyéb beviteli mód ne tegyen ékezeteket a jelszóba.
Hogyan adhatok meg @ karaktert tartalmazó jelszót a proxy URL-jében?
Kódolja: a @ karaktert %40-ként, a : karaktert %3A-ként, a # karaktert %23-ként. A curl esetében a -U kapcsoló használatával teljesen elkerülhető a kódolás.
A Selenium vagy a Puppeteer tunnel hibát jelez a 407 helyett. Ez ugyanaz a probléma?
Általában igen. A headless Chrome nem tud bejelentkezési párbeszédpanelt megjeleníteni, így a 407 ERR_TUNNEL_CONNECTION_FAILED formában jelenik meg. Adja meg a hitelesítési adatokat a könyvtár hitelesítési mechanizmusán keresztül, ahogyan a Selenium útmutatóban szerepel.
Privát proxyk egyértelmű hitelesítéssel
Minden VinaProxy megrendeléshez egy kész ip:port:user:pass sort kap, amelyet elég egyszer kimásolnia és bárhová beillesztenie.
Proxy árak megtekintése