Kaip ištaisyti 407 Proxy Authentication Required
Updated:
407 klaida yra geresnė žinia, nei atrodo: jūsų įrenginys pasiekė proxy serverį, o tinklo ryšys veikia. Proxy tiesiog praneša, kad negavo teisingo naudotojo vardo ir slaptažodžio. Štai kodėl beveik kiekviena 407 klaida išsprendžiama sutvarkius prisijungimo duomenis, o ne maršrutizatoriuje ar ugniasienėje.
407 klaidos priežastys (pradedant nuo dažniausių)
- Neteisingas arba trūkstamas naudotojo vardas / slaptažodis. Viena klaida įvedant simbolį arba kartu nukopijuotas tarpas pabaigoje. Tai paaiškina daugumą 407 klaidų.
- Laukeliai įklijuoti į netinkamas vietas. Visa
ip:port:user:passeilutė patenka į laukelį Host arba naudotojo vardas atsiduria slaptažodžio laukelyje. Vieni įrankiai šiuos keturis laukelius išskaido automatiškai, kiti – ne. - Programa visai nesiunčia prisijungimo duomenų. Operacinės sistemos proxy nustatymuose saugomas tik adresas ir prievadas. Programos, kurios neprašo slaptažodžio, jungiasi be autorizavimo antraštės ir gauna 407 atsakymą.
- Specialieji simboliai proxy URL adrese. Formate
http://user:pass@host:porttokie slaptažodžio simboliai kaip@,:ar#turi būti koduojami procentais (@virsta%40), antraip eilutė padalijama netinkamoje vietoje.
Kaip iš tikrųjų atrodo 407 klaida
Atkūrėme klaidą bandomajame proxy serveryje su dokumentacijos adresu 203.0.113.10:8080 ir tyčia neteisingais duomenimis user123:pass456. Kreipiantis į HTTPS svetainę, curl -x http://user123:[email protected]:8080 https://example.com išveda curl: (56) CONNECT tunnel failed, response 407. Kreipiantis į paprastą HTTP svetainę su -w %{http_code}, curl išveda tiesiog 407.
Pridėkite -v, kad pamatytumėte, ar prisijungimo duomenys išvis buvo išsiųsti. Eigos žurnale rodoma > CONNECT example.com:443 HTTP/1.1, tada > Proxy-Authorization: Basic ..., ir tik po to – 407. Jei eilutės Proxy-Authorization nėra, jūsų klientas prisijungimo duomenų taip ir neišsiuntė.
VinaProxy proxy tikrintuvas šiuo atveju rodo auth failed (407). Headless Chrome, neturinti prisijungimo dialogo lango, ją pateikia kaip ERR_TUNNEL_CONNECTION_FAILED; žiūrėkite tunelio klaidos puslapį.
Sprendimai pagal aplinką
- Windows ir Chrome: Chrome naudoja Windows proxy nustatymus (Parametrai > Tinklas ir internetas > Įgaliotasis serveris), kuriuose saugomas tik adresas ir prievadas. Pirmą kartą įkeliant puslapį, Chrome atidaro prisijungimo langą proxy naudotojo vardui ir slaptažodžiui įvesti. Jei įvedėte neteisingai ir langas nebepasirodo, uždarykite visus Chrome langus ir atidarykite iš naujo.
- Antidetect naršyklės (AdsPower, GoLogin, GenLogin): laukelius Host, Port, Username ir Password laikykite atskirai. Visiškai išvalykite slaptažodžio laukelį ir įklijuokite jį iš naujo, užuot redagavę. Pagalbą dėl kiekvieno laukelio rasite GoLogin nustatymo gide.
- Telefonai: iPhone turi jungiklį „Autentifikavimas“ skiltyje Nustatymai > Wi-Fi > (i) > Konfigūruoti įgaliotąjį serverį; palikus jį išjungtą, kyla 407 klaida. Android paprastai priima tik serverio adresą ir prievadą, todėl programos, reikalaujančios prisijungimo, vietoj to gali rodyti bendro pobūdžio ryšio klaidą.
- curl: perduokite
-U "user:pass"atskirai, užuot įtraukę į URL, taip išvengsite problemų dėl specialiųjų simbolių. - Python requests: nurodykite
http://user:pass@host:portabiemproxiesžodyno raktamshttpirhttps, o sudėtingus slaptažodžius užkoduokite naudodamiurllib.parse.quote.
Duomenys teisingi, bet 407 klaida išlieka
Tada palyginkite protokolus. VinaProxy siūlo HTTP(S) proxy su naudotojo vardo ir slaptažodžio prisijungimu, taip pat ir SOCKS5, todėl pasirinkite protokolą, nurodytą jūsų užsakyme valdymo skyde. Jei tikrintuvas atsako not socks5, tas prievadas naudoja HTTP ir neturėtų būti konfigūruojamas kaip SOCKS5.
Žingsnis po žingsnio
- 1
Nukopijuokite proxy eilutę iš valdymo skydo
Atidarykite užsakymą savo VinaProxy valdymo skyde ir nukopijuokite visą eilutę, užuot ją vedę rankiniu būdu.
- 2
Patikrinkite proxy tikrintuvu
Įklijuokite ją į proxy tikrintuvą. Rezultatas
auth failed (407)patvirtina, kad problema kilo dėl prisijungimo duomenų, o ne dėl tinklo. - 3
Iš naujo švariai įveskite naudotojo vardą ir slaptažodį
Išvalykite abu laukelius savo programinėje įrangoje ir įklijuokite juos iš naujo be tarpų pradžioje ar pabaigoje.
- 4
Suderinkite protokolą su užsakymu
Nustatykite proxy tipą į HTTP arba SOCKS5 tiksliai taip, kaip nurodyta užsakyme, ir išsaugokite.
- 5
Jei problema išlieka, patikrinkite su curl -v
Paleiskite
curl -vsu tikrosiomis reikšmėmis ir patikrinkite, ar prieš 407 yra eilutėProxy-Authorization.
Dažnai užduodami klausimai
Ar 407 klaidą sukelia mano ISP blokuojamas proxy serveris?
Ne. 407 klaidą atsiunčia pats proxy serveris, vadinasi, ryšys buvo užmegztas. Užblokuotas ryšys pasireikštų kaip skirtasis laikas arba atmestas prisijungimas; žiūrėkite proxy skirtasis laikas.
Kodėl Chrome vis prašo proxy prisijungimo duomenų?
Kiekvienas neteisingas įvedimas sukelia naują 407 klaidą, ir Chrome prašo vėl. Patikrinkite „Caps Lock“ ir įsitikinkite, kad vietnamiečių ar kita įvesties kalba neprideda kirčio ženklų į slaptažodį.
Kaip į proxy URL įtraukti slaptažodį su @ simboliu?
Užkoduokite jį: @ kaip %40, : kaip %3A, # kaip %23. Naudojant curl, parinktis -U leidžia visiškai išvengti kodavimo.
Selenium arba Puppeteer rodo tunelio klaidą vietoje 407. Ar tai ta pati problema?
Paprastai taip. Headless Chrome negali rodyti prisijungimo lango, todėl 407 klaida rodoma kaip ERR_TUNNEL_CONNECTION_FAILED. Pateikite prisijungimo duomenis per bibliotekos autentifikavimo mechanizmą, kaip nurodyta Selenium gide.
Privatūs proxy su aiškiais prisijungimo duomenimis
Kiekvienas VinaProxy užsakymas suteikia paruoštą ip:port:user:pass eilutę, kurią tereikia nukopijuoti ir įklijuoti bet kur.
Žiūrėti proxy kainas