Jak vyřešit chybu 407 Proxy Authentication Required
Updated:
Chyba 407 je lepší zprávou, než se zdá: vaše zařízení se k proxy připojilo a síťová trasa je volná. Proxy pouze oznamuje, že neobdržela platné uživatelské jméno a heslo. Proto se téměř každá chyba 407 řeší na straně přihlašovacích údajů, nikoli v routeru nebo firewallu.
Příčiny chyby 407 seřazené podle pravděpodobnosti
- Špatné nebo chybějící uživatelské jméno či heslo. Překlep v jediném znaku nebo mezera na konci zkopírovaná s heslem. To vysvětluje většinu hlášení chyby 407.
- Údaje vložené do nesprávných polí. Celý řádek
ip:port:user:passskončí v poli pro hostitele (Host), nebo se uživatelské jméno ocitne v poli pro heslo. Některé nástroje tyto čtyři údaje rozdělí za vás, jiné ne. - Aplikace přihlašovací údaje vůbec neodesílá. Nastavení proxy v operačním systému ukládá pouze adresu a port. Aplikace, které nedokážou vyzvat k zadání hesla, se připojují bez autorizační hlavičky a obdrží odpověď 407.
- Speciální znaky v URL adrese proxy. Ve formátu
http://user:pass@host:portmusí být znaky jako@,:nebo#v heslu zakódovány pomocí procent (např. z@se stane%40), jinak se řetězec rozdělí na špatném místě.
Jak chyba 407 ve skutečnosti vypadá
Chybu jsme nasimulovali na testovací proxy, kterou zde uvádíme s dokumentační adresou 203.0.113.10:8080 a záměrně chybnými údaji user123:pass456. Při volání HTTPS webu vypíše příkaz curl -x http://user123:[email protected]:8080 https://example.com hlášení curl: (56) CONNECT tunnel failed, response 407. U obyčejného HTTP webu s parametrem -w %{http_code} vypíše curl pouze 407.
Přidejte parametr -v, abyste zjistili, zda byly přihlašovací údaje vůbec odeslány. Ve výpisu se objeví > CONNECT example.com:443 HTTP/1.1, poté > Proxy-Authorization: Basic ... a teprve pak kód 407. Pokud řádek Proxy-Authorization chybí, váš klient přihlašovací údaje vůbec neodeslal.
Proxy checker od VinaProxy hlásí stejný případ jako auth failed (407). Headless Chrome, který nemá žádné přihlašovací okno, ji zobrazí jako ERR_TUNNEL_CONNECTION_FAILED; podrobnosti najdete na stránce chyba tunelu.
Řešení podle prostředí
- Windows a Chrome: Chrome přebírá nastavení proxy z Windows (Nastavení > Síť a internet > Proxy), které ukládá pouze adresu a port. Při prvním načtení stránky otevře Chrome přihlašovací dialog pro zadání uživatelského jména a hesla k proxy. Pokud jste údaje zadali špatně a dialog se znovu neobjeví, zavřete všechna okna prohlížeče Chrome a znovu jej spusťte.
- Antidetect prohlížeče (AdsPower, GoLogin, GenLogin): udržujte pole Host, Port, Username a Password oddělená. Místo přepisování pole pro heslo jej zcela vymažte a vložte znovu. Nápovědu pro jednotlivá pole najdete v průvodci nastavením GoLogin.
- Telefony: iPhone má přepínač Ověření v nabídce Nastavení > Wi-Fi > (i) > Konfigurovat proxy; pokud jej necháte vypnutý, dojde k chybě 407. Android obvykle přijímá pouze hostitele a port, takže aplikace vyžadující přihlášení mohou místo toho zobrazit obecnou chybu připojení.
- curl: předejte parametr
-U "user:pass"samostatně namísto vkládání údajů do URL adresy, čímž předejdete potížím se speciálními znaky. - Python requests: nastavte
http://user:pass@host:portpro klíčehttpihttpsve slovníkuproxiesa nestandardní hesla zakódujte pomocíurllib.parse.quote.
Přihlašovací údaje jsou správné, ale chyba 407 přetrvává
Dále porovnejte protokoly. VinaProxy nabízí HTTP(S) proxy s přihlášením user:pass a také SOCKS5, proto zvolte protokol uvedený u vaší objednávky v administračním panelu. Pokud checker vrátí not socks5, daný port komunikuje přes HTTP a neměl by být konfigurován jako SOCKS5.
Krok za krokem
- 1
Zkopírujte řádek proxy z administračního panelu
Otevřete objednávku v panelu VinaProxy a celý řádek raději zkopírujte, než abyste jej přepisovali ručně.
- 2
Otestujte proxy v nástroji proxy checker
Vložte jej do proxy checkeru. Výsledek
auth failed (407)potvrdí problém s přihlašovacími údaji, nikoli se sítí. - 3
Znovu čistě zadejte uživatelské jméno a heslo
Vymažte obě pole ve svém softwaru a vložte údaje znovu bez počátečních či koncových mezer.
- 4
Slaďte protokol s objednávkou
Nastavte typ proxy na HTTP nebo SOCKS5 přesně podle údajů v objednávce a uložte.
- 5
Pokud problém přetrvává, prověřte spojení pomocí curl -v
Spusťte příkaz
curl -vse svými skutečnými hodnotami a zkontrolujte, zda se před kódem 407 nachází řádekProxy-Authorization.
Často kladené otázky
Je chyba 407 způsobena tím, že můj ISP blokuje proxy?
Ne. Kód 407 odesílá samotná proxy, takže spojení proběhlo v pořádku. Blokovaná trasa se projeví vypršením časového limitu nebo odmítnutím připojení; viz vypršení časového limitu proxy.
Proč Chrome neustále vyžaduje přihlášení k proxy?
Každé chybné zadání vrátí další kód 407 a Chrome se zeptá znovu. Zkontrolujte klávesu Caps Lock a ujistěte se, že vietnamská nebo jiná klávesnice nepřidává do hesla diakritiku.
Jak zadat heslo obsahující znak @ do URL adresy proxy?
Zakódujte jej: @ jako %40, : jako %3A, # jako %23. V nástroji curl se díky parametru -U kódování zcela vyhnete.
Selenium nebo Puppeteer hlásí chybu tunelu místo 407. Jde o stejný problém?
Obvykle ano. Headless Chrome nedokáže zobrazit přihlašovací dialog, takže se kód 407 projeví jako ERR_TUNNEL_CONNECTION_FAILED. Předejte přihlašovací údaje prostřednictvím mechanismu dané knihovny, jak je popsáno v průvodci pro Selenium.
Privátní proxy s jasnými přihlašovacími údaji
S každou objednávkou u VinaProxy získáte připravený řádek ip:port:user:pass, který stačí jednou zkopírovat a vložit kamkoli.
Zobrazit ceny proxy