Tutte le posizioni attive · 99.99% uptime
SOCKS5

Impostazioni di performance SOCKS5

SOCKS5 è un protocollo molto leggero: l'handshake occupa poche decine di byte e, una volta iniziato il trasferimento dei dati, non introduce alcun overhead. Nonostante questo, il motivo per cui in pratica sembra lento di solito non è il protocollo, ma la configurazione del client.

Il costo reale: i round trip dell'handshake

FIGURACosto in round trip dello stabilimento di una connessione SOCKS5
ROUND TRIPHandshake TCP (verso il proxy)34 msGreeting SOCKS534 msAutenticazione34 msRichiesta CONNECT34 msHandshake TLS (verso la destinazione)68 ms0 ms204 ms in totale

Ogni round trip costa un tempo di andata e ritorno (RTT). Se l'RTT verso il proxy è di 34 ms, il solo stabilimento della connessione si avvicina a 200 ms. Riutilizzare la connessione elimina questo costo.

1. Usa un pool di connessioni

È qui che si ottiene il guadagno maggiore. Aprire una nuova connessione SOCKS5 per ogni richiesta significa pagare ogni volta il costo dell'handshake. Con il keep-alive puoi far passare più richieste attraverso lo stesso tunnel.

FIGURARiutilizzo delle connessioni su SOCKS5
Configurazione del client01# Python requests — usa Session (pool automatico)02import requests03s = requests.Session()04s.proxies = {"https": "socks5h://utente:password@proxy.example.com:1080"}05adapter = requests.adapters.HTTPAdapter(pool_connections=8, pool_maxsize=8)06s.mount("https://", adapter)07# Da ora in poi le chiamate s.get(...) usano lo stesso tunnel0809# Node.js — riutilizzo dell'agent10import { SocksProxyAgent } from "socks-proxy-agent";11const agent = new SocksProxyAgent("socks5h://proxy.example.com:1080");12agent.keepAlive = true;13// Usa lo stesso oggetto agent in tutte le richieste1415# SBAGLIATO: creare un nuovo agent/session a ogni richiesta

L'errore più frequente è creare a ogni richiesta un nuovo oggetto Session oppure agent . Significa che il pool non funziona affatto.

2. Bilancia i timeout

Timeout troppo brevi interrompono richieste sane; timeout troppo lunghi tengono in attesa connessioni morte. In SOCKS5 occorre impostare tre valori distinti:

FaseConsigliatoNota
Connessione (connect)10–15 sTempo per raggiungere il proxy
Lettura (read)25–40 sTempo di risposta della destinazione
Attesa nel pool (pool)5–10 sAttesa di una connessione libera
Per residential e mobile

Se il punto di uscita è una linea domestica o una rete mobile, aumenta questi valori. Su un proxy mobile un timeout di lettura di 10 secondi interrompe una parte consistente delle richieste sane.

3. Gestisci il costo della risoluzione DNS

socks5h usarlo previene le fughe di dati ma sposta la risoluzione sul proxy. Se il resolver del proxy è lento, questo genera latenza aggiuntiva. Esistono due punti di equilibrio:

  • Priorità alla privacy: socks5h usalo e accetta la latenza aggiuntiva.
  • Priorità alla velocità, privacy secondaria: Risolvi in locale e invia l'IP, ma il nome di dominio esce dalla rete locale.
  • Equilibrio: socks5h usalo, ma se l'elenco delle destinazioni è fisso mantieni le connessioni aperte a lungo; la risoluzione viene eseguita una sola volta.

4. Imposta correttamente la concorrenza

FIGURAConcorrenza e throughput su SOCKS5
MISURAZIONE010213141Throughput (richieste/s)Latenza p95 (×100 ms)248163264

Il throughput si appiattisce intorno a 32 mentre la latenza p95 sale rapidamente. Il punto ottimale è di norma là dove inizia l'appiattimento; oltre quel punto cresce solo la coda.

Per il calcolo della concorrenza vedi il nostro articolo sul limite di connessioni simultanee puoi consultarlo.

5. Non dimenticare la compressione

Poiché SOCKS5 ignora il contenuto, la decisione sulla compressione è interamente nelle mani del client. Accept-Encoding: gzip, br assicurati che l'header venga inviato: sui contenuti testuali permette un risparmio del 65–80% che si riflette direttamente sui tempi.

Misurazione

FIGURAMisurazione dei tempi fase per fase
Terminale01# Tempi delle fasi con curl02curl --socks5-hostname proxy.example.com:1080 -s -o /dev/null \\03 -w "dns:%{time_namelookup} connessione:%{time_connect} tls:%{time_appconnect} primo-byte:%{time_starttransfer} totale:%{time_total}\\n" \\04 https://example.com0506# Esegui 20 volte e calcola la mediana07for i in $(seq 1 20); do08 curl --socks5-hostname proxy.example.com:1080 -s -o /dev/null \\09 -w "%{time_total}\\n" https://example.com10done | sort -n | awk "{a[NR]=\$1} END {print \"mediana:\", a[int(NR/2)+1]}"

time_connect insieme time_appconnect la differenza tra i due mostra il costo complessivo dell'handshake SOCKS5 e dello stabilimento del TLS.

Per una misurazione più completa il nostro articolo sullo speed test e test del ping puoi usare il nostro strumento.

Riepilogo

SOCKS5 è di per sé un protocollo veloce; la lentezza deriva quasi sempre dalla mancanza di riutilizzo delle connessioni. Configura correttamente il pool, imposta i timeout in base al tipo di uscita, determina la concorrenza misurandola e mantieni attiva la compressione. Questi quattro punti, insieme, aumentano in modo evidente la velocità effettiva di una tipica operazione SOCKS5. Per le opzioni di prodotto la nostra pagina sui proxy SOCKS5 puoi consultarlo.

Domande frequenti

01SOCKS5 è più lento di un proxy HTTP?

L'handshake richiede un round trip in più, ma i byte scambiati sono pochissimi. Una volta iniziato il trasferimento dei dati non c'è alcuna differenza di velocità tra i due protocolli. La differenza riguarda solo la fase di stabilimento della connessione ed è una tantum.

02Il pool di connessioni funziona con SOCKS5?

Sì. Puoi far passare più richieste HTTP attraverso lo stesso tunnel SOCKS5. Basta riutilizzare l'oggetto Session/Agent nel tuo client.

03Usare socks5h rallenta?

In parte sì; poiché la risoluzione avviene lato proxy si aggiunge un round trip. Tuttavia, se riutilizzi le connessioni questo costo si paga una sola volta e diventa trascurabile.

04Come devo scegliere i valori di timeout?

In base al tipo di uscita. Per il datacenter sono sufficienti 10 secondi per la connessione e 25 per la lettura. Con uscite residential e soprattutto mobile porta questi valori rispettivamente a 15 e 40 secondi.

05Come individuo il livello di concorrenza?

Esegui un test di carico graduale: misura throughput e latenza p95 con i valori 2, 4, 8, 16, 32. Lavora sotto il punto in cui il throughput si appiattisce e la latenza inizia a salire.

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.