Un client V2Ray non sceglie il protocollo al posto tuo. Lo decide la configurazione che importi, e quella arriva dal tuo provider o dal tuo server. La domanda pratica è quindi cosa chiedere, o cosa configurare. Questo articolo spiega le differenze che contano e si chiude con una breve raccomandazione.
Tre livelli, non una scelta
“VLESS o VMess” sembra una decisione sola. In realtà sono tre:
- Protocollo: come il client si autentica e che aspetto ha il payload (VMess, VLESS, Trojan, Shadowsocks).
- Trasporto: come viaggiano i byte (TCP semplice, WebSocket, gRPC e altri).
- Sicurezza: ciò che avvolge la connessione (niente, TLS o REALITY).
Lo stesso protocollo può essere quasi invisibile o facile da individuare a seconda degli altri due livelli. Ciò che vede un censore dipende soprattutto da trasporto e sicurezza.
Cosa può vedere un censore
- Byte dall’aspetto casuale. Shadowsocks e VMess su TCP semplice non hanno un’intestazione riconoscibile. Questo è già di per sé un segnale: dalla fine del 2021 il Great Firewall blocca le connessioni il cui primo pacchetto sembra dati completamente cifrati. Trovi i dettagli nell’articolo sulla Cina.
- Un handshake TLS. Trojan, e VLESS o VMess su TLS, sembrano HTTPS. Un censore può comunque controllare il nome del server, l’indirizzo IP, il certificato e il comportamento della connessione.
- Un handshake preso in prestito. REALITY imita l’handshake TLS di un sito reale che scegli tu. Una sonda che non possiede la chiave viene inoltrata a quel sito reale e vede le sue pagine vere. Non ti servono un nome di dominio né un certificato tuoi.
I quattro protocolli a confronto
| VMess | VLESS | Trojan | Shadowsocks | |
|---|---|---|---|---|
| Cifra il payload da sé | Sì | No, si affida a TLS o REALITY | No, si affida a TLS | Sì |
| Aspetto di default | Byte casuali su TCP semplice | Dipende dalla sicurezza: byte casuali, TLS o REALITY | HTTPS | Byte casuali |
| Richiede un dominio e un certificato tuoi | Solo con TLS | Solo con TLS, non con REALITY | Sì | No |
| Fallisce se l’orologio è sbagliato | Sì | No | No | No |
| Si importa in v2rc | Sì | Sì | Sì | Sì |
- VMess è il protocollo V2Ray originale. Si autentica con un UUID e un timestamp, ed è per questo che un orologio del telefono o del server sfasato di un paio di minuti lo fa fallire senza alcun messaggio di errore. Usa alterId 0 (la modalità AEAD); un alterId diverso da zero è legacy.
- VLESS è il successore più leggero. Non cifra nulla da sé, quindi è riservato solo quanto il livello che c’è sotto. Usalo con TLS o REALITY, mai con la sicurezza
noneattraverso internet. - Trojan copia HTTPS: una password dentro una normale connessione TLS. A un client che non conosce la password viene mostrata invece una normale pagina web. Serve un certificato vero per un dominio vero, e un dominio può essere bloccato.
- Shadowsocks è un proxy cifrato collaudato da tempo e il più semplice da gestire. Usa un cifrario AEAD; i vecchi cifrari a flusso come
rc4-md5oaes-256-cfbsono deboli. Senza plug-in o wrapper il suo traffico è del tipo completamente cifrato.
Cosa aggiungono REALITY e Vision
In una configurazione REALITY vedrai security=reality, un nome del server (sni), una chiave pubblica (pbk) e uno short ID (sid). Il nome del server deve essere un sito reale che supporti TLS 1.3 e HTTP/2; la documentazione di REALITY chiede esattamente questo.
flow=xtls-rprx-vision è il flow Vision. Una connessione TLS trasportata dentro un’altra connessione TLS lascia uno schema riconoscibile; la letteratura di ricerca lo chiama TLS-in-TLS, e Xue et al. (USENIX Security 2024) hanno mostrato che schemi di questo tipo possono smascherare i proxy offuscati. Vision è stato progettato per ridurre questo schema nel traffico che è già di per sé HTTPS.
Nessuno dei due è magico. L’indirizzo IP e la rete di hosting del tuo server contano ancora, e REALITY non nasconde il fatto che una connessione va verso l’indirizzo di un data center estero.
Cosa chiedere
- Su una rete restrittiva (Russia, Iran, Cina e simili): VLESS con REALITY e Vision su TCP, porta 443.
- Una seconda configurazione di tipo diverso: Trojan, oppure VLESS su TLS con WebSocket o gRPC, eventualmente dietro una CDN. Una CDN nasconde l’indirizzo IP del tuo server, ma dipende dal fatto che la CDN stessa sia raggiungibile e non rallentata dove ti trovi.
- Su una rete aperta: uno qualsiasi dei quattro. Usa ciò che il tuo provider già supporta.
- Se il tuo provider ti dà un abbonamento: non scegli tu, ma puoi leggere i link per sapere cosa hai ricevuto. Vedi come leggere un link di configurazione.
- Tieni almeno due configurazioni di host diversi. Quando una fallisce, ti serve un altro indirizzo IP e, meglio ancora, un altro protocollo, non un’altra configurazione dello stesso server.
Cosa v2rc può importare e cosa no
v2rc importa VMess, VLESS (compreso REALITY), Shadowsocks e Trojan da un link, da un file JSON V2Ray, dagli appunti o da un URL di abbonamento. Non importa Hysteria 2, TUIC, WireGuard, AmneziaWG né NaiveProxy. I primi quattro funzionano su UDP, che molte reti restrittive scartano; NaiveProxy funziona su HTTPS ma richiede un proprio client. Per questi ti serve un’altra app.
v2rc non include server: le configurazioni le porti tu. Smart Connect sceglie la configurazione più veloce e verifica che il tunnel faccia davvero passare il traffico prima di cambiare.
Fonti
- Documentazione di REALITY ed esempi di configurazione di Xray
- Descrizione del protocollo Trojan
- Specifica AEAD di Shadowsocks
- Xue, Kallitsis, Houmansadr, Ensafi: Fingerprinting Obfuscated Proxy Traffic with Encapsulated TLS Handshakes, USENIX Security 2024
- Wu et al.: How the Great Firewall of China Detects and Blocks Fully Encrypted Traffic, USENIX Security 2023