Fehlerbehebung · 1 Min Lesezeit

HTTP 407 Proxy-Authentifizierung erforderlich: wie man es behebt

Ein 407 ist der Proxy – nicht die Website – die Ihnen mitteilt, dass sie Anmeldeinformationen benötigt, die sie nicht erhalten hat. Dieser Leitfaden erklärt genau, was es auslöst und führt durch die Lösungen für curl, Browser, Python, Windows und Unternehmensproxies.

Was eine 407 tatsächlich bedeutet

HTTP 407 Proxy-Authentifizierung erforderlich kommt vom Proxy, nicht von der Zielseite. Es ist die Art des Proxys zu sagen: "Ich werde deine Anfrage weiterleiten, aber zuerst musst du beweisen, wer du bist." Es ist das Proxy-Schicht-Zwillingspaar eines 401: Die Antwort enthält einen Proxy-Authenticate-Header, der das gewünschte Schema beschreibt (in der Regel Basic), und dein Client wird erwartet, die Anfrage mit einem Proxy-Authorization-Header erneut zu senden. Wenn die Anmeldeinformationen fehlen, fehlerhaft oder falsch sind, erhältst du einen 407.

With authenticated proxies like s4m's — SOCKS5 on 1080, HTTP on 3128, both using USER:PASS — a 407 almost always means one of four things: you supplied no credentials, you supplied the wrong ones, the password contains special characters that broke URL parsing, or the tool you are using does not read credentials from where you put them (a classic with Puppeteer and Scrapy). The fixes below are ordered from most to least common. See the proxy authentication guide and the proxy overview for background.

Geben Sie die Anmeldeinformationen korrekt an, je nach Tool

Dasselbe USER:PASS, an dem Ort, an dem jedes Tool es tatsächlich liest. Ersetzen Sie es durch Ihre Anmeldeinformationen.

bash
# curl: inline in URL, or with -U (URL-encode special chars, e.g. @ -> %40)
curl -x http://USER:PASS@proxy.s4m.online:3128 https://api.ipify.org
curl -x proxy.s4m.online:3128 -U USER:PASS https://api.ipify.org

# wget: dedicated flags
wget -e https_proxy=proxy.s4m.online:3128 \
     --proxy-user=USER --proxy-password=PASS https://example.com

# Python requests: credentials belong in the proxy URL
#   proxies = {"http": "http://USER:PASS@proxy.s4m.online:3128",
#              "https": "http://USER:PASS@proxy.s4m.online:3128"}
#   requests.get(url, proxies=proxies)

# Environment variables (many tools read these):
export HTTPS_PROXY="http://USER:PASS@proxy.s4m.online:3128"

# Special characters? URL-encode the password:
#   pa@ss  ->  pa%40ss     (Python: urllib.parse.quote(pw, safe=''))

# Verify it worked: a 200 with an IP body means auth passed.
curl -o /dev/null -s -w "%{http_code}\n" \
     -x http://USER:PASS@proxy.s4m.online:3128 https://api.ipify.org

Beheben Sie einen 407, Schritt für Schritt

Arbeiten Sie diese Liste ab; die meisten 407s werden durch Schritt 3 gelöst.

Bestätigen Sie, dass der Proxy Authentifizierung benötigt

s4m-Proxys erfordern USER:PASS. Ein 407 bedeutet, dass der Proxy keine gültigen Anmeldeinformationen erhalten hat – die Frage ist also nur, wo Ihre fehlgeleitet sind, nicht ob Authentifizierung erforderlich ist.

Überprüfen Sie, ob die Anmeldeinformationen genau richtig sind

Kopiere USER und PASS erneut von deinem Dashboard. Ein nachfolgender Leerraum, ein falsches Zeichen oder ein abgelaufenes Credential führen alle zu einem 407. Teste sie zuerst in einem einzelnen curl -x Befehl.

Sonderzeichen URL-encodieren

Wenn das Passwort @, :, /, # oder Ähnliches enthält, kodieren Sie sie (@ wird zu %40). Unkodiert brechen sie die Proxy-URL, sodass der Client falsche oder unvollständige Anmeldeinformationen sendet.

Geben Sie die Anmeldeinformationen dort ein, wo das Tool sie liest

Einige Tools ignorieren URL-Anmeldeinformationen: Puppeteer benötigt page.authenticate(), Scrapy benötigt einen Proxy-Authorization-Header. Passen Sie die Methode an das Tool an, nicht nur an den Proxy.

Browser, Windows und Unternehmensproxys

In einem Browser erscheint ein 407 normalerweise als Anmelde-Popup vom Proxy; die Eingabe des richtigen Benutzernamens und Passworts beseitigt es. Bei der Automatisierung eines Browsers ist dieses Popup das ganze Problem – headless Chromium kann darauf nicht reagieren, weshalb Puppeteer page.authenticate() verwendet, Playwright Anmeldeinformationen in seinem Proxy-Objekt entgegennimmt und Selenium eine kleine Erweiterung benötigt. Unter Windows überprüfen Sie den Systemproxy unter Einstellungen und jeden Proxy pro App, da ein veraltetes gespeichertes Credential dort 407s in Tools auslösen kann, die den Systemproxy erben.

Unternehmensproxies fügen eine Komplikation hinzu: Einige verwenden NTLM oder Kerberos anstelle von Basic-Auth, sodass ein einfaches USER:PASS nicht ausreicht und Sie die NTLM-Option des Tools benötigen. s4m selbst verwendet standardmäßige Basic USER:PASS, sodass Sie NTLM mit unseren Endpunkten nicht benötigen. Wenn die Anmeldeinformationen definitiv korrekt sind und Sie immer noch 407 sehen, bestätigen Sie, dass Sie den richtigen Port (1080 SOCKS5, 3128 HTTP) ansteuern und validieren Sie den Endpunkt mit den Tools. Ein verwandter Chrome-Fehler wird im ERR_PROXY_CONNECTION_FAILED-Leitfaden behandelt.

FAQ

Fragen, beantwortet

Ist ein 407-Fehler die Schuld der Website oder des Proxys?

Der Proxy. HTTP 407 Proxy-Authentifizierung erforderlich wird vom Proxy zurückgegeben, nicht von der Zielseite, und teilt Ihnen mit, dass er gültige Anmeldeinformationen benötigt, bevor er Ihre Anfrage weiterleitet. Die Website wird nie erreicht, bis Sie sich authentifizieren.

Warum erhalte ich 407, obwohl das Passwort korrekt ist?

Am häufigsten enthält das Passwort Sonderzeichen, die die Proxy-URL brechen, sodass der Client den falschen Wert sendet. URL-kodieren Sie sie (zum Beispiel wird @ zu %40). Bestätigen Sie auch, dass das Tool die Anmeldeinformationen von dort liest, wo Sie sie eingegeben haben.

Wie behebe ich 407 in Puppeteer, Playwright oder Selenium?

Browser ignorieren Anmeldeinformationen im Proxy-Flag. Verwenden Sie page.authenticate() in Puppeteer, die Benutzername/Passwort-Felder des Proxy-Objekts in Playwright und eine kleine Anmeldeerweiterung in Selenium.

Verwendet s4m NTLM-Proxy-Authentifizierung?

Nein. s4m verwendet die standardmäßige Basic USER:PASS-Authentifizierung an den Ports 1080 (SOCKS5) und 3128 (HTTP). NTLM gilt nur für einige Unternehmensproxys, nicht für unsere Endpunkte.

Proxys mit einfacher Authentifizierung

s4m-Proxys verwenden einfache USER:PASS auf proxy.s4m.online — kein NTLM, keine Überraschungen. Abgerechnete Datacenter SOCKS5 und HTTP, mit einer dedizierten IP-Option für zugelassene Zugriffe.

Menschen fanden diese Seite durch die Suche nach

Echte Suchphrasen, auf die diese Seite antwortet — die verlinkten öffnen die Seite, die sie ausführlich behandelt.