La deep packet inspection (DPI) permette a una rete di guardare oltre indirizzi e porte e giudicare la forma del tuo traffico. I protocolli VPN classici hanno handshake riconoscibili, quindi un censore può bloccarli senza decifrare un solo byte. Un endpoint privato sul tuo VPS evita le blocklist condivise, e un protocollo che imita il normale HTTPS evita il fingerprinting. Questa guida configura uno di questi protocolli: VLESS con REALITY su Xray.
Come il DPI riconosce una VPN
I censori si basano su tre segnali: pattern di handshake fissi (OpenVPN e WireGuard ne hanno entrambi), intervalli di IP noti dei provider VPN commerciali e il probing attivo, in cui il censore si connette al tuo server e controlla come risponde. Un protocollo deve superarli tutti e tre per durare.
- Pattern di handshake: si evitano avvolgendo il traffico in una vera sessione TLS.
- Intervalli di IP condivisi: si evitano usando un server che usi solo tu.
- Probing attivo: si evita facendo comportare il server come un vero sito web per chiunque non abbia la chiave.
Perché REALITY
REALITY prende in prestito l’handshake TLS di un sito reale e popolare. Una sonda che non conosce la tua chiave viene semplicemente inoltrata a quel sito e vede un normale certificato e una normale pagina. Un client che conosce la chiave ottiene il proxy. Non c’è un certificato tuo da segnalare e nessun dominio da registrare.
Passo 1: prepara il server
Usa un VPS Ubuntu nuovo in una sede con una buona rotta verso i tuoi utenti e applica prima l’hardening di base. Poi installa Xray con lo script ufficiale.
sudo apt update && sudo apt -y upgrade
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
xray x25519
L’ultimo comando stampa una chiave privata e una pubblica. Tieni la chiave privata sul server e dai la chiave pubblica ai client. Genera un ID utente con xray uuid.
Passo 2: scrivi la configurazione di Xray
Scegli un sito di camuffamento che supporti TLS 1.3 e HTTP/2 e sia raggiungibile dal tuo server. Inserisci il suo hostname sia in dest sia in serverNames.
{
"inbounds": [{
"port": 443,
"protocol": "vless",
"settings": {
"clients": [{ "id": "YOUR-UUID", "flow": "xtls-rprx-vision" }],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"realitySettings": {
"dest": "example.org:443",
"serverNames": ["example.org"],
"privateKey": "YOUR-PRIVATE-KEY",
"shortIds": ["a1b2c3d4"]
}
}
}],
"outbounds": [{ "protocol": "freedom" }]
}
Salvala come /usr/local/etc/xray/config.json, poi esegui sudo systemctl restart xray e controlla systemctl status xray.
Passo 3: apri il firewall e connettiti
sudo ufw allow OpenSSH
sudo ufw allow 443/tcp
sudo ufw enable
Sul client, importa l’indirizzo del server, la porta 443, l’UUID, la chiave pubblica, lo short ID e lo stesso nome del server. Client come v2rayN, Nekoray, Streisand e Hiddify supportano REALITY. Imposta il flow su xtls-rprx-vision per farlo corrispondere al server.
Mantienilo funzionante
- Usa un VPS per ogni piccolo gruppo di utenti. Un endpoint molto trafficato è più facile da profilare.
- Se il sito di camuffamento diventa irraggiungibile dal server, le connessioni falliscono. Scegli un sito stabile e cambialo se serve.
- Mantieni Xray aggiornato; le correzioni al protocollo arrivano spesso.
- Non eseguire nient’altro sulla porta 443 dello stesso IP.
Nessuno strumento garantisce l’accesso sotto ogni censore. Testa dalla rete che userai davvero e tieni un secondo protocollo come ripiego. Per una VPN quotidiana più semplice, leggi WireGuard sul tuo VPS, e per la scelta tra i due classici leggi WireGuard o OpenVPN.