Kurze Antwort
Was bedeutet SOCKS5 proxy errors bei einem Proxy?
SOCKS5-Fehler gibt es in drei Arten: Ihr Client unterstützt SOCKS nicht, der Server hat Ihren Benutzernamen und Ihr Passwort abgelehnt oder der Server konnte das Ziel nicht erreichen und hat einen Antwortcode zurückgegeben. Verwenden Sie bei CrawlRelay zuerst die SOCKS-Unterstützung (für Python requests: requests[socks]), verwenden Sie den SOCKS5-Port und bevorzugen Sie socks5h://, damit DNS am Ausgang aufgelöst wird und nicht auf Ihrer Maschine.
SOCKS5 proxy errors auf einen Blick
| Fehler | SOCKS5 proxy errors |
|---|---|
| Typ | SOCKS5-Protokoll- oder Clientfehler |
| Gesendet von | Der SOCKS5-Server (Antwortcodes) oder Ihre Client-Bibliothek (fehlende Unterstützung) |
| Definiert in | SOCKS5: RFC 1928; username/password authentication: RFC 1929 |
| Noch einmal versuchen? | Abhängig vom Antwortcode |
| Zuerst prüfen | Bestätigen Sie, dass der Client SOCKS5 mit Authentifizierung unterstützt, und lesen Sie dann den Antwortcode |
Was bedeutet SOCKS5 proxy errors?
SOCKS5, definiert in RFC 1928, leitet TCP-Verbindungen weiter, ohne HTTP zu lesen. Die Authentifizierung per Benutzername und Passwort ist ein separater kurzer Austausch, definiert in RFC 1929. Nach der Authentifizierung fragt der Client eine Verbindung zu einem Host und Port an, und der Server antwortet mit einem ein Byte langen Antwortcode.
Antwort 0x00 bedeutet Erfolg. Codes 0x01 bis 0x08 beschreiben Fehler, von einem allgemeinen Serverfehler bis zu einem nicht unterstützten Adresstyp. Clients übersetzen diese Codes in eigene Meldungen.
Wie sieht a SOCKS5 error in Python, curl, Node.js und Browsern aus?
Der gleiche Fehler wird in jedem Tool anders angezeigt. Hier sind die Meldungen, nach denen Sie in Ihren Logs suchen sollten:
- Python requests ohne PySocks:
InvalidSchema: Missing dependencies for SOCKS support. - curl, abgelehnte Zugangsdaten:
curl: (97) User was rejected by the SOCKS5 server - Antwort 0x01: 'Allgemeiner SOCKS-Serverfehler'
- Antwort 0x04 / 0x05: 'Host nicht erreichbar' / 'Verbindung verweigert' durch das Ziel
- Antwort 0x08: 'Adressentyp nicht unterstützt'
Was verursacht a SOCKS5 error?
Wahrscheinlich zuerst:
- Keine SOCKS-Unterstützung in der Clientbibliothek installiert.
- Falsche Zugangsdaten oder nicht URL-kodierte Zugangsdaten.
- Der HTTP-Port wird für SOCKS genutzt, oder der SOCKS-Port wird für HTTP genutzt.
- Ein Ziel, das abgelehnt oder vom Ausgang nicht erreichbar ist.
- Lokales DNS mit
socks5://: Der Client löst den Hostnamen selbst auf, was fehlschlagen oder die falsche regionale Adresse zurückgeben kann.
Wie diagnostiziere ich a SOCKS5 error Schritt für Schritt?
- Bestätigen Sie die SOCKS-Unterstützung: In Python
pip show pysocks; in Node.js ein SOCKS-Agent-Paket. - Führen Sie den untenstehenden curl-Test gegen den SOCKS5-Port mit
--socks5-hostnameaus. - Lesen Sie den Antwortcode oder die Meldung.
- Vergleichen Sie
socks5://undsocks5h://für dasselbe Ziel.
# Use the URL that fails; with https://api.ipify.org instead, you test the gateway alone.
# "HTTP/1.1 200 Connection established" first, then the site's own status: the site answered.
curl -v -x http://USERNAME:[email protected]:7777 https://TARGET_URL
# Same test through the SOCKS5 port, with DNS resolved at the exit
curl -v --socks5-hostname gw.crawlrelay.com:7778 --proxy-user USERNAME:PASSWORD https://TARGET_URLWie behebe ich a SOCKS5 error?
- Unterstützung installieren:
pip install "requests[socks]"; in Node.js benutzen Sie einen SOCKS Proxy Agent. - **Den SOCKS5-Port für
socks5h://URLs nutzen und den HTTP-Port fürhttp://URLs. - Bevorzugen Sie
socks5h://, damit der Ausgang DNS auflöst, was mit der lokalen Besuchererfahrung übereinstimmt. - Für Antwort 0x04 oder 0x05 testen Sie das Ziel ohne Proxy; es könnte ausgefallen oder ablehnend sein.
- Für Browser benutzen Sie den HTTP-Port: Chromium unterstützt keine SOCKS5-Authentifizierung.
import requests
# socks5h:// sends the hostname to the proxy, so DNS resolves at the exit
proxy = "socks5h://USERNAME:[email protected]:7778"
r = requests.get("https://api.ipify.org", proxies={"http": proxy, "https": proxy}, timeout=(10, 30))
print(r.status_code, r.text)Soll ich nach a SOCKS5 error einen erneuten Versuch starten?
Wiederholen Sie nur Fehler auf der Zielseite, wie Host nicht erreichbar oder Verbindung verweigert, und nur einmal mit einem neuen Ausgang. Authentifizierungsfehler und fehlende Clientunterstützung wiederholen sich, bis Sie die Konfiguration korrigieren.
Wie wirkt sich SOCKS5 proxy errors auf CrawlRelay aus?
CrawlRelay stellt SOCKS5 auf einem eigenen Port bereit, der unten aufgeführt ist, mit demselben Benutzernamenformat und Passwort wie der HTTP-Port. Zielsetzung und Sessions funktionieren auf beiden Ports gleich.
Gateway: gw.crawlrelay.com, Port 7777 (HTTP, HTTPS über CONNECT) und Port 7778 (SOCKS5). Benutzername im Format: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. Verwandt: Keine Verbindung zum Proxy · curl-Anleitung · Python-Anleitung.
SOCKS5 proxy errors: Fragen, die Entwickler stellen
Was ist der Unterschied zwischen socks5:// und socks5h://?
Mit socks5:// löst Ihr Client selbst den Hostnamen in eine IP-Adresse auf und sendet die IP an den Proxy. Mit socks5h:// wird der Hostname gesendet, und der Proxy löst ihn auf. Verwenden Sie socks5h:// für das Scraping: Die DNS-Auflösung erfolgt dann am Ausgangspunkt, sodass Sie dieselben regionalen Antworten erhalten wie lokale Besucher.
Sollte ich SOCKS5- oder HTTP-Proxies für das Scraping verwenden?
Für Webseiten funktionieren beide, und HTTP-Proxies sind einfacher: Jede HTTP-Bibliothek und jeder Browser unterstützt sie mit Authentifizierung. Verwenden Sie SOCKS5 für Nicht-HTTP-Protokolle oder Tools, die nur SOCKS sprechen. Chromium-basierte Browser können sich nicht bei SOCKS5 authentifizieren, daher verwenden Sie dort den HTTP-Port.
Warum zeigt curl die Meldung 'Benutzer wurde vom SOCKS5-Server abgelehnt'?
Der SOCKS5-Server hat den Benutzernamen- und Passwort-Austausch abgelehnt. Überprüfen Sie die Zugangsdaten, kodieren Sie Sonderzeichen URL-entsprechend und vergewissern Sie sich, dass Sie den SOCKS5-Port verwenden. Derselbe Benutzername und dasselbe Passwort müssen am HTTP-Port funktionieren, wenn das Konto aktiv ist.
Weitere Proxy-Fehler in diesem Leitfaden
HTTP-Statuscodes
- 401 Unauthorized vs 407
- 403 Forbidden
- 407 Proxy Authentication Required
- 429 Too Many Requests
- 502 Bad Gateway
- 503 Service Unavailable
- 504 Gateway Timeout
Browser- und Clientfehler
Verbindungs- und TLS-Fehler
Residential-Proxys mit Dokumentationen, die Fehlerfälle abdecken
CrawlRelay Residential-Proxys von 0,50 $/GB, Traffic, der nie abläuft.