Kort antwoord
Wat betekent SOCKS5 proxy errors bij een proxy?
SOCKS5 fouten zijn er in drie vormen: je client ondersteunt SOCKS niet, de server verwierp je gebruikersnaam en wachtwoord, of de server kon het doel niet bereiken en gaf een antwoordcode terug. Bij CrawlRelay installeer je eerst SOCKS ondersteuning (voor Python requests: requests[socks]), gebruik de SOCKS5 poort en geef de voorkeur aan socks5h:// zodat DNS door de exit wordt opgelost, niet lokaal.
SOCKS5 proxy errors in één oogopslag
| Fout | SOCKS5 proxy errors |
|---|---|
| Type | SOCKS5 protocol- of clientfout |
| Verzonden door | De SOCKS5 server (antwoordcodes) of jouw clientbibliotheek (ontbrekende ondersteuning) |
| Gedefinieerd in | SOCKS5: RFC 1928; username/password authentication: RFC 1929 |
| Opnieuw proberen? | Hangt af van de antwoordcode |
| Eerst controleren | Bevestig dat de client SOCKS5 met authenticatie ondersteunt, lees dan de antwoordcode |
Wat betekent SOCKS5 proxy errors?
SOCKS5, gedefinieerd in RFC 1928, leidt TCP verbindingen zonder HTTP te lezen. Authenticatie met gebruikersnaam en wachtwoord is een aparte uitwisseling, gedefinieerd in RFC 1929. Na authenticatie vraagt de client om een verbinding naar een host en poort, en de server antwoordt met een éénbyte antwoordcode.
Antwoord 0x00 betekent succes. Codes 0x01 tot 0x08 beschrijven fouten, van algemene serverfout tot niet-ondersteund adresstype. Clients vertalen ze naar eigen foutberichten.
Hoe ziet a SOCKS5 error eruit in Python, curl, Node.js en browsers?
Dezelfde fout verschijnt anders in elk hulpmiddel. Dit zijn de berichten om in je logs te zoeken:
- Python requests zonder PySocks:
InvalidSchema: Missing dependencies for SOCKS support. - curl, geweigerde credentials:
curl: (97) User was rejected by the SOCKS5 server - Antwoord 0x01: 'algemene SOCKS serverfout'
- Antwoord 0x04 / 0x05: 'Host onbereikbaar' / 'Verbinding geweigerd' door het doel
- Antwoord 0x08: 'Adresstype niet ondersteund'
Wat veroorzaakt a SOCKS5 error?
Waarschijnlijk eerst:
- Geen SOCKS ondersteuning geïnstalleerd in de clientbibliotheek.
- Verkeerde credentials of niet URL-gecodeerd.
- De HTTP poort gebruikt voor SOCKS, of de SOCKS poort gebruikt voor HTTP.
- Een doel dat verbinding weigerde of onbereikbaar was vanaf de exit.
- Lokale DNS met
socks5://: de client lost de hostnaam lokaal op, wat kan falen of het verkeerde regionale adres geven.
Hoe diagnosticeer ik a SOCKS5 error stap voor stap?
- Bevestig SOCKS ondersteuning: in Python,
pip show pysocks; in Node.js, een SOCKS agent package. - Voer de curl-test hieronder uit op de SOCKS5 poort met
--socks5-hostname. - Lees de antwoordcode of het bericht.
- Vergelijk
socks5://ensocks5h://voor hetzelfde doel.
# 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_URLHoe los ik a SOCKS5 error op?
- Installeer ondersteuning:
pip install "requests[socks]"; in Node.js, gebruik een SOCKS proxy agent. - Gebruik de SOCKS5 poort voor
socks5h://URLs en de HTTP poort voorhttp://URLs. - Geef de voorkeur aan
socks5h://zodat DNS door de exit wordt opgelost, dit komt overeen met lokale bezoekers. - Voor antwoord 0x04 of 0x05, test het doel zonder proxy; het kan uitgevallen of weigerend zijn.
- Voor browsers, gebruik de HTTP poort: Chromium ondersteunt geen SOCKS5 authenticatie.
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)Moet ik opnieuw proberen na a SOCKS5 error?
Probeer alleen fouten aan de kant van het doel opnieuw, zoals host onbereikbaar of verbinding geweigerd, en slechts één keer met een nieuwe exit. Authenticatiefouten en ontbrekende clientondersteuning herhalen zich totdat je de configuratie corrigeert.
Hoe geldt SOCKS5 proxy errors voor CrawlRelay?
CrawlRelay biedt SOCKS5 aan op een eigen poort, hieronder vermeld, met hetzelfde gebruikersnaamformaat en wachtwoord als de HTTP poort. Targeting en sessies werken hetzelfde op beide poorten.
Gateway: gw.crawlrelay.com, poort 7777 (HTTP, HTTPS via CONNECT) en poort 7778 (SOCKS5). Gebruikersnaamformaat: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. Gerelateerd: Kan niet verbinden met proxy · curl-gids · Python-gids.
SOCKS5 proxy errors: vragen die ontwikkelaars stellen
Wat is het verschil tussen socks5:// en socks5h://?
Met socks5:// lost je client de hostnaam zelf op naar een IP-adres en stuurt dat IP naar de proxy. Met socks5h:// wordt de hostnaam verzonden en wordt deze aan de proxy-kant opgelost. Gebruik socks5h:// voor scraping: DNS gebeurt dan aan de uitgang, waardoor je dezelfde regionale antwoorden krijgt als lokale bezoekers.
Moet ik SOCKS5- of HTTP-proxy's gebruiken voor scraping?
Voor webpagina's werken beide, maar HTTP-proxy's zijn eenvoudiger: elke HTTP-bibliotheek en browser ondersteunt ze met authenticatie. Gebruik SOCKS5 voor niet-HTTP-protocollen of voor tools die alleen SOCKS spreken. Chromium-gebaseerde browsers kunnen niet authenticeren bij SOCKS5, gebruik hier daarom de HTTP-poort.
Waarom zegt curl 'User was rejected by the SOCKS5 server'?
De SOCKS5-server weigerde de gebruikersnaam- en wachtwoorduitwisseling. Controleer de inloggegevens, codeer speciale tekens in URL-formaat en bevestig dat je de SOCKS5-poort gebruikt. Dezelfde gebruikersnaam en wachtwoord moeten op de HTTP-poort werken als het account actief is.
Andere proxyfouten in deze referentie
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- en clientfouten
Verbindings- en TLS-fouten
Residentiële proxy's met documentatie die de faalgevallen beschrijft
CrawlRelay residentiële proxy's van US$ 0,50/GB, verkeer dat nooit verloopt.