Kā novērst kļūdu 407 Proxy Authentication Required
Updated:
Kļūda 407 patiesībā ir labāka ziņa, nekā šķiet: ierīce sasniedza starpniekserveri un tīkla ceļš ir atvērts. Starpniekserveris vienkārši ziņo, ka nav saņēmis derīgu lietotājvārdu un paroli. Tāpēc gandrīz ikviena 407 kļūda ir atrisināma ar autentifikācijas datiem, nevis maršrutētājā vai ugunsmūrī.
407 cēloņi (sākot ar ticamākajiem)
- Nepareizs vai trūkstošs lietotājvārds/parole. Viena drukas kļūda vai kopā ar paroli iekopēta atstarpe beigās. Tas izskaidro lielāko daļu 407 ziņojumu.
- Lauki ielīmēti nepareizajās ailēs. Visa rindiņa
ip:port:user:passnokļūst laukā Host, vai arī lietotājvārds nonāk paroles laukā. Daži rīki šos četrus laukus sadala automātiski, bet citi nē. - Lietotne nenosūta akreditācijas datus. Operētājsistēmas starpniekservera iestatījumos tiek saglabāta tikai adrese un ports. Lietotnes, kas nevar pieprasīt paroli, izveido savienojumu bez autentifikācijas galvenes un saņem atpakaļ 407.
- Īpašās rakstzīmes starpniekservera URL. Formātā
http://user:pass@host:porttādām paroles rakstzīmēm kā@,:vai#ir jābūt procentuāli kodētām (@kļūst par%40), pretējā gadījumā virkne tiek sadalīta nepareizajā vietā.
Kā 407 izskatās praksē
Mēs atkārtojām šo kļūdu testa starpniekserverī, kas šeit parādīts ar dokumentācijas adresi 203.0.113.10:8080 un apzināti nepareizu user123:pass456. Pieprasījumā uz HTTPS vietni komanda curl -x http://user123:[email protected]:8080 https://example.com izvada curl: (56) CONNECT tunnel failed, response 407. Pieprasījumā uz vienkāršu HTTP vietni ar -w %{http_code} curl izvada tikai 407.
Pievienojiet -v, lai redzētu, vai akreditācijas dati vispār tika nosūtīti. Trasējumā redzams > CONNECT example.com:443 HTTP/1.1, pēc tam > Proxy-Authorization: Basic ..., un tikai tad 407. Ja rindiņas Proxy-Authorization nav, jūsu klients pieteikšanās datus tā arī nenosūtīja.
VinaProxy starpniekserveru pārbaudītājs šajā gadījumā uzrāda auth failed (407). Headless Chrome, kam nav pieteikšanās dialoglodziņa, to attēlo kā ERR_TUNNEL_CONNECTION_FAILED; skatiet tuneļa kļūdu lapu.
Risinājumi dažādās vidēs
- Windows un Chrome: Chrome izmanto Windows starpniekservera iestatījumus (Iestatījumi > Tīkls un internets > Starpniekserveris), kur norāda tikai adresi un portu. Pirmajā lapas ielādes reizē Chrome atver pieteikšanās lodziņu starpniekservera lietotājvārdam un parolei. Ja ievadījāt to nepareizi un lodziņš vairs neparādās, aizveriet visus Chrome logus un atveriet tos no jauna.
- Antidetect pārlūki (AdsPower, GoLogin, GenLogin): ievadiet Host, Port, Username un Password atsevišķos laukos. Pilnībā notīriet paroles lauku un ielīmējiet to no jauna, nevis labojiet. Norādījumi par katru lauku ir pieejami GoLogin iestatīšanas pamācībā.
- Tālruņi: iPhone ir slēdzis Autentifikācija sadaļā Iestatījumi > Wi-Fi > (i) > Konfigurēt starpniekserveri; ja tas ir izslēgts, rodas kļūda 407. Android parasti pieņem tikai resursdatoru un portu, tāpēc lietotnes, kurām nepieciešama pieteikšanās, tā vietā var parādīt vispārīgu savienojuma kļūdu.
- curl: nododiet
-U "user:pass"atsevišķi, nevis iekļaujiet to URL, tādējādi apejot problēmas ar īpašajām rakstzīmēm. - Python requests: iestatiet
http://user:pass@host:portgan vārdnīcasproxiesatslēgaihttp, ganhttps, un kodējiet sarežģītas paroles, izmantojoturllib.parse.quote.
Dati ir pareizi, bet kļūda 407 saglabājas
Pēc tam salīdziniet protokolus. VinaProxy piedāvā HTTP(S) starpniekserverus ar user:pass pieteikšanos, kā arī SOCKS5, tāpēc izvēlieties protokolu, kas norādīts jūsu pasūtījumā vadības panelī. Ja pārbaudītājs atbild not socks5, šis ports izmanto HTTP un to nevajadzētu konfigurēt kā SOCKS5.
Soli pa solim
- 1
Nokopējiet starpniekservera rindiņu no vadības paneļa
Atveriet pasūtījumu savā VinaProxy vadības panelī un nokopējiet visu rindiņu, nevis ievadiet to manuāli.
- 2
Pārbaudiet to starpniekserveru pārbaudītājā
Ielīmējiet to starpniekserveru pārbaudītājā. Rezultāts
auth failed (407)apliecina, ka problēma ir akreditācijas datos, nevis tīklā. - 3
Ievadiet lietotājvārdu un paroli no jauna
Pilnībā notīriet abus laukus savā programmatūrā un ielīmējiet tos no jauna bez atstarpēm sākumā vai beigās.
- 4
Pielāgojiet protokolu pasūtījumam
Iestatiet starpniekservera tipu uz HTTP vai SOCKS5 precīzi tā, kā norādīts pasūtījumā, un saglabājiet.
- 5
Pārbaudiet trasējumu ar curl -v, ja kļūda nepazūd
Palaidiet
curl -var savām reālajām vērtībām un pārbaudiet, vai pirms 407 parādās rindiņaProxy-Authorization.
Biežāk uzdotie jautājumi
Vai 407 kļūdu izraisa tas, ka mans ISP bloķē starpniekserveri?
Nē. Kļūdu 407 nosūta pats starpniekserveris, tātad savienojums tika izveidots. Bloķēts savienojuma ceļš izpaužas kā noildze vai noraidīts savienojums; skatiet starpniekservera noildzi.
Kāpēc Chrome atkārtoti pieprasa starpniekservera pieteikšanos?
Pēc katras nepareizas ievades tiek saņemta jauna 407 kļūda, un Chrome vaicā vēlreiz. Pārbaudiet Caps Lock un pārliecinieties, vai vjetnamiešu vai cita ievades metode parolei nepievieno diakritiskās zīmes.
Kā ievadīt paroli, kas satur @, starpniekservera URL?
Kodējiet to: @ kā %40, : kā %3A, # kā %23. Izmantojot curl, karodziņš -U ļauj vispār iztikt bez kodēšanas.
Selenium vai Puppeteer uzrāda tuneļa kļūdu, nevis 407. Vai tā ir tā pati problēma?
Parasti jā. Headless Chrome nevar parādīt pieteikšanās dialoglodziņu, tāpēc kļūda 407 parādās kā ERR_TUNNEL_CONNECTION_FAILED. Norādiet akreditācijas datus ar bibliotēkas autentifikācijas mehānismu, kā aprakstīts Selenium pamācībā.
Privāti starpniekserveri ar skaidriem akreditācijas datiem
Katrs VinaProxy pasūtījums nodrošina gatavu ip:port:user:pass rindiņu, ko varat nokopēt un ielīmēt jebkurā vietā.
Skatīt starpniekserveru cenas