Come creare il tuo server VPN nel 2026: guida WireGuard su Ubuntu

2026.07.29 23:10 petro

Con una VPN autogestita controlli il server di uscita, le chiavi e i dispositivi autorizzati. Il traffico passa in un tunnel cifrato fino al VPS e poi raggiunge internet con l’indirizzo pubblico del server. È utile sulle reti Wi-Fi non affidabili, per l’accesso remoto e per flussi di lavoro legittimi che richiedono un’uscita stabile.

La guida ufficiale VPN vs BitBrowser chiarisce che la VPN opera sulla rete, mentre BitBrowser separa cookie, storage, sessioni e profili del browser. Sono livelli complementari e non sostitutivi.

Letture BitBrowser: VPN vs BitBrowser  |  navigazione privata  |  identità di rete nel 2026

ChatGPT Image 29 juil. 2026, 23_53_34.png

1. Scegliere il VPS e definire gli indirizzi

Scegli un VPS con IPv4 pubblica, Ubuntu Server 26.04 LTS, UDP consentito e accesso SSH tramite chiave. Controlla il firewall del provider, il traffico incluso e la disponibilità di una console di emergenza.

L’esempio usa 10.8.0.0/24 e la porta UDP 51820. Modifica la subnet se coincide con reti domestiche, aziendali o di container. Ogni dispositivo deve ricevere un indirizzo e una coppia di chiavi separati.

Piano di distribuzione della VPN

Elemento

Valore consigliato

Perché è importante

Sistema operativoUbuntu Server 26.04 LTSUsa un’immagine supportata e installa prima gli aggiornamenti.
Protocollo VPNWireGuardConfigurazione ridotta e modello moderno a chiave pubblica.
TrasportoUDP 51820Apri la porta nel firewall cloud e in UFW.
Subnet VPN10.8.0.0/24Cambiala se si sovrappone a una rete esistente.
Indirizzo server10.8.0.1/24Gateway interno al tunnel cifrato.
Primo client10.8.0.2/32Ogni peer richiede un indirizzo univoco.

 

2. Installare WireGuard e generare la chiave server

Aggiorna Ubuntu e installa WireGuard. qrencode è facoltativo per importare profili su smartphone. Mantieni la chiave privata del server in /etc/wireguard con permessi restrittivi e condividi soltanto la chiave pubblica.

Generare le chiavi private dei client direttamente sui dispositivi riduce il rischio di copie non necessarie.

Esempio di comando o configurazione

sudo apt update
sudo apt install -y wireguard qrencode

sudo sh -c 'umask 077; wg genkey > /etc/wireguard/server.key'
sudo sh -c 'wg pubkey < /etc/wireguard/server.key > /etc/wireguard/server.pub'
sudo cat /etc/wireguard/server.pub

 

3. Abilitare il forwarding e trovare l’interfaccia esterna

Il server deve inoltrare i pacchetti tra wg0 e la rete pubblica. Abilita il forwarding IPv4 in modo persistente e individua l’interfaccia della route predefinita. Nei VPS può chiamarsi ens3 invece di eth0.

Una configurazione NAT con il nome sbagliato permette spesso il handshake ma impedisce la navigazione.

Esempio di comando o configurazione

echo 'net.ipv4.ip_forward=1' | sudo tee /etc/sysctl.d/99-wireguard-forward.conf
sudo sysctl --system

ip route show default
# Note the public interface name, such as eth0 or ens3.

 

4. Scrivere la configurazione wg0

Crea /etc/wireguard/wg0.conf, inserisci la chiave privata del server e la chiave pubblica del primo client. Le direttive PostUp e PostDown gestiscono il percorso UFW e il masquerading.

Sul server assegna un /32 a ogni peer. Non duplicare lo stesso profilo su più dispositivi, perché la revoca e il routing diventano inaffidabili.

Esempio di comando o configurazione

[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY
PostUp = ufw route allow in on wg0 out on eth0
PostUp = iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
PostDown = ufw route delete allow in on wg0 out on eth0
PostDown = iptables -t nat -D POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

[Peer]
PublicKey = CLIENT1_PUBLIC_KEY
AllowedIPs = 10.8.0.2/32

 

5. Configurare il firewall e avviare il servizio

Consenti OpenSSH prima di attivare UFW. Apri UDP 51820 sia nel sistema sia nel firewall cloud. Imposta i permessi del file e abilita wg-quick@wg0 per l’avvio automatico.

Con wg show puoi verificare porta, peer e contatori. Il timestamp del handshake compare quando il client raggiunge davvero il server.

Esempio di comando o configurazione

sudo ufw allow OpenSSH
sudo ufw allow 51820/udp
sudo ufw enable
sudo ufw status verbose

sudo chmod 600 /etc/wireguard/wg0.conf
sudo systemctl enable --now wg-quick@wg0
sudo wg show

 

6. Creare il profilo client

Genera la coppia di chiavi sul client e invia al server solo la chiave pubblica. Il profilo di esempio instrada tutto il traffico IPv4. Per uno split tunnel specifica esclusivamente le reti remote necessarie.

PersistentKeepalive = 25 è utile per i dispositivi mobili dietro NAT. Il DNS indicato è solo un esempio: scegli un resolver affidabile e verifica che venga usato.

Esempio di comando o configurazione

umask 077
wg genkey > client1.key
wg pubkey < client1.key > client1.pub
cat client1.pub

[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
Address = 10.8.0.2/32
DNS = 1.1.1.1

[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = SERVER_PUBLIC_IP:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

 

7. Eseguire test completi

Controlla handshake, byte trasferiti, IP pubblico, DNS, accesso alla rete remota e riconnessione dopo un riavvio. Prova anche il passaggio tra Wi-Fi e rete cellulare.

Se alcuni siti non funzionano, esamina MTU e IPv6. Un tunnel solo IPv4 non protegge automaticamente un percorso IPv6 separato.

Esempio di comando o configurazione

sudo wg show
sudo systemctl status wg-quick@wg0 --no-pager
sudo journalctl -u wg-quick@wg0 -n 50 --no-pager
ip addr show wg0
ip route
sudo ufw status verbose

 

8. Gestire sicurezza e profili BitBrowser

Usa chiavi SSH, installa aggiornamenti, limita i servizi pubblici e rimuovi i peer non più autorizzati. Se un dispositivo viene perso, elimina immediatamente il suo blocco [Peer]. Conserva backup controllati senza diffondere chiavi private.

La VPN non rende invisibili: il provider del VPS può associare il server al cliente e i siti vedono l’IP di uscita e gli account utilizzati. BitBrowser può isolare profili browser autorizzati, ma non sostituisce WireGuard, il firewall o la sicurezza dell’endpoint.

Tabella di risoluzione dei problemi

Sintomo

Causa probabile

Cosa controllare

Nessun handshakeChiave, endpoint, porta o firewall erratiConfronta le chiavi pubbliche e verifica UDP 51820.
Handshake ma niente internetForwarding o NAT mancantiControlla ip_forward, interfaccia, UFW route e MASQUERADE.
Alcuni siti non funzionanoMTU o IPv6Prova MTU 1380-1420 e verifica IPv6.
DNS ancora localeDNS client non applicatoImposta un resolver e riconnetti.
Caduta su rete mobileScadenza della mappatura NATUsa PersistentKeepalive = 25.
Non parte al riavvioServizio o regole non persistentiAbilita wg-quick@wg0 e conserva le regole.

 

Domande frequenti

Serve un dominio?

No. Un IP pubblico statico è sufficiente; un dominio o DNS dinamico è utile se l’endpoint cambia.

Quanti client posso aggiungere?

Uno per ogni dispositivo, con chiave e indirizzo unici. La capacità dipende da CPU, banda e limiti del provider.

Perché il client si collega ma non naviga?

Controlla forwarding, nome dell’interfaccia esterna, NAT, UFW, AllowedIPs e DNS.

La VPN elimina il fingerprint del browser?

No. Cambia il percorso di rete e l’IP pubblico, ma il browser continua a esporre caratteristiche e stato locale.

BitBrowser può sostituire la VPN?

No. Isola le sessioni del browser; WireGuard cifra il traffico tra client e gateway.

Conclusione

Un server VPN affidabile nasce da una configurazione semplice e documentata: Ubuntu supportato, WireGuard, chiavi uniche, subnet senza conflitti, firewall minimo, NAT corretto e test ripetibili.

Mantieni il sistema aggiornato, revoca i dispositivi persi e verifica periodicamente DNS e routing. Affianca BitBrowser soltanto quando serve una separazione autorizzata dei profili web e mantieni aspettative realistiche sulla privacy.

Fonti tecniche e letture ufficiali BitBrowser

Note Ubuntu 26.04  •  Guida Ubuntu WireGuard  •  Avvio rapido WireGuard  •  Firewall Ubuntu  •  VPN vs BitBrowser  •  Navigazione privata  •  Sito BitBrowser
Verificato il 29 luglio 2026. I comandi presuppongono Ubuntu Server 26.04 LTS, tunnel IPv4 completo e interfaccia pubblica eth0; adattali al tuo server.