Risposta rapida
Cosa significa SOCKS5 proxy errors con un proxy?
Errori SOCKS5 di tre tipi: il client non supporta SOCKS, il server ha respinto username e password, o il server non ha raggiunto il target e ha risposto con un codice. Con CrawlRelay, installa prima il supporto SOCKS (per Python requests: requests[socks]), usa la porta SOCKS5 e preferisci socks5h:// perché il DNS si risolva all’uscita, non sulla tua macchina.
SOCKS5 proxy errors a colpo d'occhio
| Errore | SOCKS5 proxy errors |
|---|---|
| Tipo | Errore protocollo SOCKS5 o del client |
| Inviato da | Il server SOCKS5 (codici di risposta) o la tua libreria client (supporto mancante) |
| Definito in | SOCKS5: RFC 1928; username/password authentication: RFC 1929 |
| Riprovarlo? | Dipende dal codice di risposta |
| Prima verifica | Conferma che il client supporta SOCKS5 con autenticazione, poi leggi il codice di risposta |
Cosa significa SOCKS5 proxy errors?
SOCKS5, definito in RFC 1928, relè connessioni TCP senza interpretare HTTP. L’autenticazione tramite username e password è uno scambio separato definito in RFC 1929. Dopo l’autenticazione il client richiede una connessione a host e porta, e il server risponde con un codice di un byte.
Risposta 0x00 significa successo. I codici da 0x01 a 0x08 descrivono fallimenti, da errore generico server a tipo indirizzo non supportato. I client traducono questi codici in messaggi propri.
Com'è a SOCKS5 error in Python, curl, Node.js e browser?
Lo stesso errore si presenta in modo diverso in ogni strumento. Questi sono i messaggi da cercare nei log:
- Python requests senza PySocks:
InvalidSchema: Missing dependencies for SOCKS support. - curl, credenziali respinte:
curl: (97) User was rejected by the SOCKS5 server - Risposta 0x01: 'errore generico server SOCKS'
- Risposta 0x04 / 0x05: 'Host irraggiungibile' / 'Connessione rifiutata' dal target
- Risposta 0x08: 'Tipo indirizzo non supportato'
Cosa causa a SOCKS5 error?
Probabilmente prima:
- Nessun supporto SOCKS installato nella libreria client.
- Credenziali errate o non codificate URL.
- Porta HTTP usata per SOCKS o porta SOCKS usata per HTTP.
- Target che ha rifiutato o era irraggiungibile dall’uscita.
- DNS locale con
socks5://: il client risolve da solo hostname, che può fallire o restituire l’indirizzo regionale sbagliato.
Come diagnostico a SOCKS5 error passo dopo passo?
- Verifica il supporto SOCKS: in Python
pip show pysocks; in Node.js, un pacchetto proxy SOCKS. - Esegui il test curl da terminale sulla porta SOCKS5 con
--socks5-hostname. - Leggi il codice o messaggio di risposta.
- Confronta
socks5://esocks5h://per lo stesso target.
# 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_URLCome risolvo a SOCKS5 error?
- Installa supporto:
pip install "requests[socks]"; in Node.js usa un agente proxy SOCKS. - Usa la porta SOCKS5 per URL
socks5h://e la porta HTTP per URLhttp://. - Preferisci
socks5h://perché il DNS si risolva all’uscita, come ricevono i visitatori locali. - Per risposta 0x04 o 0x05, testa il target senza proxy; potrebbe essere down o rifiutare.
- Per browser, usa la porta HTTP: Chromium non supporta autentificazione SOCKS5.
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)Devo riprovare dopo a SOCKS5 error?
Riprova solo errori dal lato target, come host irraggiungibile o connessione rifiutata, una sola volta su una nuova uscita. Fallimenti di autenticazione o supporto mancante si ripetono finché non correggi la configurazione.
Come si applica SOCKS5 proxy errors a CrawlRelay?
CrawlRelay fornisce SOCKS5 su una porta dedicata, elencata sotto, con stesso formato utente e password della porta HTTP. Mirare e sessioni funzionano ugualmente su entrambe le porte.
Gateway: gw.crawlrelay.com, porta 7777 (HTTP, HTTPS tramite CONNECT) e porta 7778 (SOCKS5). Formato username: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. Correlato: Impossibile connettersi al proxy · guida curl · guida Python .
SOCKS5 proxy errors: domande frequenti dagli sviluppatori
Qual è la differenza tra socks5:// e socks5h://?
Con socks5:// il tuo client risolve l'hostname in un indirizzo IP e invia l'IP al proxy. Con socks5h:// invia l'hostname, e il proxy lo risolve. Usa socks5h:// per scraping: il DNS avviene all'uscita, così ottieni le stesse risposte regionali dei visitatori locali.
Devo usare proxy SOCKS5 o HTTP per il scraping?
Per le pagine web, entrambi funzionano, e i proxy HTTP sono più semplici: tutte le librerie HTTP e i browser li supportano con autenticazione. Usa SOCKS5 per protocolli non HTTP o strumenti che parlano solo SOCKS. I browser basati su Chromium non possono autenticarsi su SOCKS5, quindi lì usa la porta HTTP.
Perché curl dice 'Utente rifiutato dal server SOCKS5'?
Il server SOCKS5 ha rifiutato lo scambio di nome utente e password. Controlla le credenziali, codifica i caratteri speciali in URL e verifica che stai usando la porta SOCKS5. Lo stesso nome utente e password deve funzionare sulla porta HTTP se l'account è attivo.
Altri errori proxy in questo riferimento
Codici di stato HTTP
- 401 Unauthorized vs 407
- 403 Forbidden
- 407 Proxy Authentication Required
- 429 Too Many Requests
- 502 Bad Gateway
- 503 Service Unavailable
- 504 Gateway Timeout
Errori del browser e client
Errori di connessione e TLS
Proxy residenziali con documentazione che copre i casi di errore
Proxy residenziali CrawlRelay da 0,50 USD/GB, traffico che non scade mai.