Jak naprawić błąd 407 Proxy Authentication Required
Updated:
Błąd 407 to lepsza wiadomość, niż się wydaje: Twoje urządzenie połączyło się z serwerem proxy, a ścieżka sieciowa działa. Proxy informuje jedynie, że nie otrzymało prawidłowej nazwy użytkownika i hasła. Dlatego niemal każdy błąd 407 rozwiązuje się po stronie danych logowania, a nie w routerze czy zaporze sieciowej.
Przyczyny błędu 407 – od najbardziej prawdopodobnych
- Błędna lub brakująca nazwa użytkownika/hasło. Jedna literówka lub spacja na końcu skopiowana wraz z hasłem. To wyjaśnia większość zgłoszeń błędu 407.
- Dane wklejone w niewłaściwe pola. Cała linia
ip:port:user:passtrafia do pola Host albo nazwa użytkownika ląduje w polu hasła. Niektóre programy same rozdzielają te cztery pola, inne nie. - Aplikacja w ogóle nie wysyła danych logowania. Ustawienia serwera proxy w systemie operacyjnym przechowują tylko adres i port. Aplikacje, które nie potrafią wyświetlić monitu o hasło, łączą się bez nagłówka autoryzacji i otrzymują odpowiedź 407.
- Znaki specjalne w adresie URL proxy. W formacie
http://user:pass@host:portznaki takie jak@,:czy#w haśle muszą być zakodowane procentowo (@staje się%40), inaczej ciąg zostanie podzielony w niewłaściwym miejscu.
Jak w praktyce wygląda błąd 407
Odtworzyliśmy ten błąd na testowym serwerze proxy o przykładowym adresie dokumentacyjnym 203.0.113.10:8080 oraz celowo błędnych danych user123:pass456. W połączeniu ze stroną HTTPS polecenie curl -x http://user123:[email protected]:8080 https://example.com zwraca komunikat curl: (56) CONNECT tunnel failed, response 407. W przypadku zwykłej strony HTTP z parametrem -w %{http_code} curl wyświetla po prostu 407.
Dodaj parametr -v, aby sprawdzić, czy dane logowania w ogóle zostały wysłane. W logach pojawi się > CONNECT example.com:443 HTTP/1.1, następnie > Proxy-Authorization: Basic ... i dopiero po tym 407. Jeśli brakuje wiersza Proxy-Authorization, Twój klient nigdy nie przesłał danych logowania.
Narzędzie do sprawdzania proxy VinaProxy zgłasza ten sam przypadek jako auth failed (407). Z kolei Headless Chrome, który nie posiada okna dialogowego logowania, wyświetla błąd jako ERR_TUNNEL_CONNECTION_FAILED; zobacz stronę błędu tunelu.
Rozwiązania w zależności od środowiska
- Windows i Chrome: Chrome korzysta z systemowych ustawień proxy w Windows (Ustawienia > Sieć i internet > Serwer proxy), które przechowują wyłącznie adres i port. Przy pierwszym ładowaniu strony Chrome otwiera okno logowania, prosząc o nazwę użytkownika i hasło do proxy. Jeśli wpisano je błędnie, a okno się nie pojawia, zamknij wszystkie okna Chrome i uruchom przeglądarkę ponownie.
- Przeglądarki antywykrywalne (AdsPower, GoLogin, GenLogin): wprowadzaj Host, Port, Nazwę użytkownika i Hasło w osobnych polach. Wyczyść pole hasła całkowicie i wklej je ponownie, zamiast je edytować. Instrukcję krok po kroku znajdziesz w poradniku konfiguracji GoLogin.
- Telefony: iPhone posiada przełącznik Uwierzytelnianie w sekcji Ustawienia > Wi-Fi > (i) > Konfiguruj serwer proxy; pozostawienie go wyłączonym wywołuje błąd 407. Android zazwyczaj obsługuje tylko host i port, więc aplikacje wymagające logowania mogą zamiast tego zgłaszać ogólny błąd połączenia.
- curl: przekaż
-U "user:pass"oddzielnie zamiast osadzać dane w adresie URL, co pozwala uniknąć problemów ze znakami specjalnymi. - Python requests: ustaw
http://user:pass@host:portzarówno dla kluczahttp, jak ihttpsw słownikuproxies, a nietypowe hasła zakoduj za pomocąurllib.parse.quote.
Dane logowania są poprawne, ale błąd 407 nadal występuje
W następnej kolejności porównaj protokoły. VinaProxy oferuje serwery proxy HTTP(S) z logowaniem user:pass, a także SOCKS5, dlatego wybierz protokół wskazany w Twoim zamówieniu w panelu. Jeśli tester zgłasza not socks5, dany port obsługuje protokół HTTP i nie powinien być konfigurowany jako SOCKS5.
Krok po kroku
- 1
Skopiuj wiersz proxy z panelu
Otwórz zamówienie w panelu VinaProxy i skopiuj cały wiersz zamiast wpisywać go ręcznie.
- 2
Przetestuj go w narzędziu do sprawdzania proxy
Wklej dane do narzędzia do sprawdzania proxy. Wynik
auth failed (407)potwierdza problem z danymi logowania, a nie z siecią. - 3
Wprowadź ponownie nazwę użytkownika i hasło
Wyczyść oba pola w aplikacji i wklej dane ponownie, upewniając się, że nie zawierają spacji na początku ani na końcu.
- 4
Dopasuj protokół do zamówienia
Ustaw typ serwera proxy na HTTP lub SOCKS5 dokładnie tak, jak podano w zamówieniu, a następnie zapisz.
- 5
Sprawdź połączenie za pomocą curl -v, jeśli problem nadal występuje
Uruchom polecenie
curl -vze swoimi rzeczywistymi danymi i sprawdź, czy liniaProxy-Authorizationpojawia się przed błędem 407.
Często zadawane pytania
Czy błąd 407 jest spowodowany blokowaniem serwera proxy przez mój ISP?
Nie. Kod 407 jest wysyłany bezpośrednio przez serwer proxy, co oznacza, że połączenie sieciowe zostało nawiązane. Zablokowane połączenie objawia się przekroczeniem limitu czasu lub odrzuceniem połączenia; zobacz przekroczenie limitu czasu serwera proxy.
Dlaczego Chrome w kółko pyta o dane logowania do proxy?
Każde nieudane logowanie skutkuje kolejnym kodem 407 i Chrome ponawia zapytanie. Sprawdź Caps Lock oraz upewnij się, że wietnamski lub inny układ klawiatury nie dodaje znaków diakrytycznych do hasła.
Jak umieścić hasło zawierające znak @ w adresie URL serwera proxy?
Zakoduj je: @ jako %40, : jako %3A, # jako %23. W przypadku curl flaga -U pozwala całkowicie uniknąć kodowania.
Selenium lub Puppeteer pokazuje błąd tunelu zamiast 407. Czy to ten sam problem?
Zazwyczaj tak. Headless Chrome nie wyświetla okna logowania, przez co błąd 407 pojawia się jako ERR_TUNNEL_CONNECTION_FAILED. Przekaż dane logowania przez mechanizm autoryzacji danej biblioteki, tak jak opisano w poradniku do Selenium.
Prywatne serwery proxy z przejrzystymi danymi logowania
Z każdym zamówieniem w VinaProxy otrzymujesz gotową linię ip:port:user:pass do jednorazowego skopiowania i wklejenia w dowolnym miejscu.
Zobacz cennik proxy