Tutte le posizioni attive · 99.99% uptime
SOCKS5

Come funziona l'autenticazione SOCKS5?

In SOCKS5 l'autenticazione non avviene tramite un header come nei proxy HTTP, ma con una sotto-negoziazione separata . Questa differenza spiega anche perché i messaggi di errore siano così vaghi: quando viene proposto il metodo sbagliato il server non restituisce un testo esplicativo, invia un singolo byte e chiude la connessione.

Negoziazione del metodo

FIGURANegoziazione dell'autenticazione SOCKS5
NEGOZIAZIONEClientServer SOCKS50x05 0x02 0x00 0x02 (versione + 2 metodi)0x05 0x02 (selezionato utente/password)0x01 len user len passSotto-negoziazione RFC 19290x01 0x00 (riuscita)CONNECT destinazione:porta0x05 0x00 (connessione stabilita)

Ogni passaggio è di pochi byte in una sola direzione. Se la negoziazione fallisce, il server restituisce 0xFF oppure 0x01 0x01 e chiude la connessione: non esiste alcun testo di errore esplicativo.

Metodi supportati

CodiceMetodoUtilizzo
0x00Nessuna autenticazione richiestaServer protetti da whitelist IP
0x01GSSAPIAmbienti Kerberos aziendali (raro)
0x02Nome utente / passwordIl metodo commerciale più diffuso
0xFFNessun metodo accettabileRisposta di rifiuto del server
Sicurezza

Nome utente e password in chiaro vengono inviati. SOCKS5 di per sé non esegue alcuna cifratura. Se lo usi su una rete non affidabile le tue credenziali possono essere lette; in questo scenario lavorare tramite un tunnel SSH è più sicuro.

Problemi frequenti

FIGURAErrori di autenticazione SOCKS5
ERRORECODICE / SINTOMOPOSSIBILE CAUSASOLUZIONELa connessione si è chiusa silenziosamenteIl client non propone il metodo 0x02Usa un client o una libreria che supporti l'autenticazioneRestituito 0x01 0x01Nome utente o password erratiRicopia le credenziali dal pannelloNon vengono richieste le credenziali maviene rifiutatoCi si connette da un IP fuori dalla whitelistAggiungi il tuo IP pubblico al pannelloAlterazione dei caratteri specialiCarattere non codificato nell'URLScrivi la password con la codifica percentuale oppure usa il campo separato.Il browser non chiede la passwordIl browser non supporta l'autenticazione SOCKSUsa un proxy bridge locale

La riga relativa al browser è importante: molti browser non supportano l'autenticazione SOCKS5 dall'interfaccia. In questo caso serve un bridge locale che trasporti le credenziali.

Il problema dei browser e la soluzione

Il supporto di Chrome e Firefox all'autenticazione SOCKS5 è limitato o del tutto assente. Esistono due soluzioni pratiche:

01

Passa alla whitelist IP

Se il provider la supporta è la soluzione più pulita: non viene inviata alcuna credenziale e il browser funziona senza problemi.

02

Installa un bridge locale

Esegui sulla macchina un piccolo proxy che trasporti le credenziali e configuralo nel browser 127.0.0.1 . Il metodo è descritto nel nostro articolo sul concatenamento del nostro blog.

Configurazione per libreria

FIGURAFornire correttamente nome utente e password
Credenziali SOCKS5 nei vari linguaggi01# curl — con opzione separata (nessun problema di codifica URL)02curl --socks5-hostname proxy.example.com:1080 \\03 --proxy-user "utente:password" https://example.com0405# Python — requests[socks]06proxies = {"https": "socks5h://utente:password@proxy.example.com:1080"}07r = requests.get("https://example.com", proxies=proxies, timeout=25)0809# Python — httpx10import httpx11with httpx.Client(proxy="socks5://utente:password@proxy.example.com:1080") as c:12 r = c.get("https://example.com")1314# Node.js — socks-proxy-agent15import { SocksProxyAgent } from "socks-proxy-agent";16const agent = new SocksProxyAgent("socks5h://utente:password@proxy.example.com:1080");

Se la tua password contiene @, : oppure / , usa il campo separato invece del formato URL; altrimenti dovrai applicare la codifica percentuale.

Confronto con la whitelist

Anche in SOCKS5 valgono i due modelli e i criteri di scelta sono gli stessi dei proxy HTTP. Per un confronto dettagliato puoi consultare il nostro articolo sui metodi di autenticazione . L'unica differenza specifica di SOCKS5 è il problema del supporto dei browser: la whitelist lo elimina completamente.

Verifica

FIGURADimostrare che l'autenticazione funziona
Terminale01# Segui la negoziazione con l'output dettagliato02curl -v --socks5-hostname proxy.example.com:1080 \\03 --proxy-user "utente:password" https://example.com 2>&1 | head -200405# Se riesce: una riga simile a "SOCKS5 request granted"06# Se fallisce: "Unable to receive initial SOCKS5 response" oppure07# "User was rejected by the SOCKS5 server"0809# Prova con una password errata e osserva l'errore (per capirne il comportamento)10curl -v --socks5-hostname proxy.example.com:1080 \\11 --proxy-user "utente:errata" https://example.com 2>&1 | grep -i socks

Testare di proposito con una password errata rende più facile riconoscere il messaggio di errore quando si presenta un problema reale.

Riepilogo

L'autenticazione SOCKS5 avviene tramite una sotto-negoziazione separata e i messaggi di errore non sono esplicativi. I due problemi più frequenti sono il client che non propone affatto il metodo di autenticazione e i browser che non supportano questo metodo. Poiché le credenziali vengono inviate in chiaro, fai attenzione sulle reti non affidabili. La whitelist è la soluzione più pulita, perché elimina sia il problema dei browser sia il rischio di fuga di dati. Per testare i tuoi indirizzi il nostro strumento di controllo proxy puoi usarlo.

Domande frequenti

01La password SOCKS5 viene inviata cifrata?

No, viene inviata in chiaro. SOCKS5 di per sé non esegue alcuna cifratura. Su reti non affidabili, dai per scontato che le tue credenziali possano essere lette.

02Perché su Chrome la password SOCKS5 viene richiesta o non viene richiesta?

Il supporto di Chrome all'autenticazione SOCKS5 è limitato e varia in base alla versione. La soluzione più affidabile è usare una whitelist IP oppure eseguire un proxy bridge locale che trasporti le credenziali.

03La connessione si chiude subito, senza messaggio di errore: perché?

Il server potrebbe aver restituito 0xFF (nessun metodo accettabile) e chiuso la connessione. Significa che il tuo client non ha mai proposto il metodo utente/password.

04La mia password contiene caratteri speciali, come devo scriverla?

Usa il campo credenziali separato del client invece del formato URL (in curl: --proxy-user). Se proprio devi, applica la codifica percentuale: 40% al posto di @, 3%A al posto di :.

05Posso usare la whitelist IP con SOCKS5?

Sì, e nella maggior parte degli scenari è più pratico. Il server seleziona il metodo 0x00 (nessuna autenticazione richiesta), sul lato client non serve alcuna configurazione di credenziali e il problema del browser scompare.

Articoli e pagine correlati

PROSSIMO PASSO

Potenzia oggi la tua infrastruttura proxy.

Inizia in pochi minuti con i pacchetti a pagamento oppure prova prima il nostro elenco di proxy gratuiti.

FREEPROXY.TR

Se cerchi proxy gratuiti, sei nel posto giusto

Una piattaforma proxy completa dove consultare indirizzi proxy gratuiti aggiornati, confrontare i tipi di proxy HTTP e SOCKS e verificare le tue connessioni proxy con strumenti gratuiti.