Perché gestire la propria VPN WireGuard
Una VPN commerciale ti chiede di fidarti di un'azienda che non puoi verificare. La paghi, instradi tutto il tuo traffico attraverso i suoi server e ti fidi della sua parola che non conserva log. Una VPN self-hosted ribalta questo schema: affitti un server, installi la VPN da solo, e l'unica parte che può vedere il tuo traffico sei tu. Non c'è alcun provider intermedio che lo registri, lo venda o lo consegni a un'autorità giudiziaria.
WireGuard è ciò che rende tutto questo pratico. È un protocollo VPN moderno, compatto, veloce e semplice — poche migliaia di righe di codice anziché le centinaia di migliaia dei vecchi stack, il che lo rende facile da verificare e difficile da configurare male. Su un VPS di fascia bassa saturerà la connessione con un consumo trascurabile della CPU. Abbinato a un VPS offshore e no-KYC, un tunnel WireGuard self-hosted ti offre un punto di uscita privato che appartiene solo a te — e questa guida ti mostra come costruirlo da zero.

Di cosa hai bisogno
L'intera configurazione richiede un solo server e circa quindici minuti:
- Un VPS. Anche il piano più piccolo è più che sufficiente — WireGuard è estremamente leggero. Scegli la giurisdizione da cui vuoi che il tuo traffico sembri provenire. Un VPS ServPrivacy da $7,50/mese con accesso root completo è più che adeguato.
- Un'installazione Linux aggiornata. Qualsiasi versione recente di Debian o Ubuntu funziona bene; i comandi seguenti presuppongono l'uso di una di queste. Le altre distribuzioni differiscono solo nel passaggio di installazione del pacchetto.
- Accesso root o sudo e qualche minuto alla riga di comando.
Non hai bisogno di un dominio, di un pannello di controllo o di alcun software VPN di terze parti. WireGuard è già integrato nel kernel Linux moderno.
Passo 1 — Installare WireGuard sul server
Connettiti al tuo VPS tramite SSH e installa gli strumenti WireGuard. Su Debian o Ubuntu è un unico comando: apt update && apt install -y wireguard. Il modulo kernel è già presente su qualsiasi kernel moderno, quindi questo installa solo gli strumenti in user-space — wg e wg-quick — che utilizzi per gestire i tunnel.
Questa è l'intera installazione. Non c'è nessun demone separato da configurare, nessun account da creare e nulla di extra da aggiornare oltre ai normali aggiornamenti di sistema.
Passo 2 — Generare le chiavi e scrivere la configurazione del server
WireGuard autentica i peer con crittografia a chiave pubblica, quindi il primo passo è creare una coppia di chiavi per il server. Generala con wg genkey | tee server_private.key | wg pubkey > server_public.key. La chiave privata rimane sul server e non viene mai condivisa; la chiave pubblica verrà fornita a ciascun client.
Poi crea la configurazione del tunnel in /etc/wireguard/wg0.conf. La sezione server definisce l'intervallo di indirizzi privati del tunnel, la porta su cui WireGuard è in ascolto (51820 per impostazione predefinita) e la chiave privata del server. Ogni dispositivo che collegherai in seguito viene aggiunto come blocco [Peer] contenente la chiave pubblica del client e il suo indirizzo all'interno del tunnel. Tieni il file leggibile solo da root — contiene la chiave privata del server.
La configurazione è volutamente breve. Una configurazione server funzionante è ben al di sotto delle venti righe, ed è proprio questo uno dei motivi per cui WireGuard è difficile da configurare in modo pericolosamente errato.
Passo 3 — Abilitare il forwarding e aprire la porta
Affinché la VPN instradi il tuo traffico verso Internet, il server deve essere in grado di inoltrare i pacchetti. Abilita il forwarding IP impostando net.ipv4.ip_forward=1 in /etc/sysctl.conf e applicandolo con sysctl -p. La configurazione del tunnel necessita anche di una regola firewall che esegua il masquerading del traffico in uscita, in modo che lasci il server con l'indirizzo proprio del server — di solito viene aggiunta come riga PostUp in wg0.conf così viene applicata automaticamente all'avvio del tunnel.
Assicurati quindi che la porta WireGuard sia raggiungibile. Se il VPS usa un firewall, consenti UDP sulla porta scelta (51820 per impostazione predefinita). WireGuard usa solo UDP e — elemento utile per la privacy — non risponde affatto ai pacchetti non sollecitati, quindi una scansione delle porte non può nemmeno confermare la presenza del servizio.
Avvia il tunnel con wg-quick up wg0 e abilitalo all'avvio con systemctl enable [redacted-user]@[redacted-host]. Il lato server è ora attivo.
Passo 4 — Aggiungere un client e connettersi
Ogni dispositivo che utilizza la VPN — un laptop, un telefono — ha bisogno di una propria coppia di chiavi e di una piccola configurazione client. Genera una coppia di chiavi per il client esattamente come per il server, poi scrivi una configurazione client contenente la chiave privata del client, il suo indirizzo nel tunnel, la chiave pubblica del server, l'IP pubblico e la porta del server come Endpoint, e un AllowedIPs di [redacted-ip]/0 in modo che tutto il traffico sia instradato attraverso il tunnel.
Aggiungi il blocco [Peer] corrispondente — con la chiave pubblica del client — alla wg0.conf del server e ricaricala. Sul client, installa l'app WireGuard (disponibile per ogni piattaforma desktop e mobile), importa la configurazione — la maggior parte delle app accetta un codice QR, il metodo più pratico per i telefoni — e attiva il tunnel. In un secondo il traffico del tuo dispositivo uscirà attraverso il tuo VPS. Confermalo verificando il tuo indirizzo IP pubblico: dovrebbe corrispondere a quello del server.
Passo 5 — Rafforzare la sicurezza e manutenzione
Un tunnel funzionante è la parte principale del lavoro; alcuni ritocchi finali lo rendono solido:
- Proteggi SSH. Usa l'accesso con chiave, disabilita l'autenticazione tramite password e considera di spostare SSH dalla porta 22. La VPN è privata quanto il server su cui gira.
- Mantieni il sistema aggiornato. WireGuard di per sé richiede poca attenzione, ma il sistema operativo sottostante deve ricevere gli aggiornamenti di sicurezza — abilita gli aggiornamenti automatici.
- Una coppia di chiavi per dispositivo. Non condividere mai una singola configurazione client tra più dispositivi. Se un dispositivo viene perso, rimuovi solo il suo blocco peer invece di dover generare nuovamente tutte le chiavi.
- Imposta il DNS nella configurazione client. Punta il client verso un resolver che rispetti la privacy, in modo che anche le query DNS viaggino attraverso il tunnel anziché fuoriuscire verso la rete locale.
- Fidati dei default per i log. WireGuard non registra nulla del traffico che trasporta; non viene semplicemente registrato niente di ciò che transita, quindi non c'è nulla di extra da disabilitare.
Gestito in questo modo, il server richiede quasi nessuna attenzione continua — WireGuard è praticamente un'impostazione definitiva.
Quando una VPN self-hosted è la scelta giusta
Una VPN WireGuard self-hosted è la scelta giusta quando vuoi un punto di uscita privato che risponda solo a te — per proteggere la connessione su reti non affidabili, per tenere la navigazione lontana da un ISP, o per apparire come proveniente da una giurisdizione specifica. Poiché è il tuo server, non c'è nessun indirizzo IP condiviso con migliaia di sconosciuti e nessuna politica di log di un provider da prendere in parola.
Vale la pena essere chiari su una cosa che non fa: una VPN con un solo server ti protegge dal tuo ISP e dai siti che visiti, ma il provider del VPS potrebbe in linea di principio osservare il traffico all'uscita. È esattamente per questo che la scelta dell'host è importante — un VPS offshore, no-KYC e senza log significa che il punto di uscita è gestito da un provider che non ha raccolto alcuna identità e non tiene alcun registro. WireGuard self-hosted più il VPS giusto è, per la maggior parte delle persone, la configurazione per la privacy più onesta disponibile: nessuna fiducia necessaria al di là dell'infrastruttura che controlli.