
WireGuard è una tecnologia di rete che implementa una VPN (Virtual Private Network) moderna, leggera e sicura.
In pratica, è un protocollo e un software che permette di creare una connessione privata e cifrata tra due o più computer, come se fossero collegati alla stessa rete locale, anche se si trovano in luoghi diversi.
Caratteristiche principali di WireGuard:
Sicurezza elevata → utilizza algoritmi crittografici moderni e più sicuri rispetto a protocolli più datati come IPsec o OpenVPN.
Velocità e leggerezza → il codice è molto compatto (qualche migliaio di righe), facile da revisionare e ottimizzato per performance migliori.
Semplicità → la configurazione è più immediata rispetto a molte altre VPN: si basa su coppie di chiavi pubbliche/private, simili a SSH.
Portabilità → funziona su Linux, Windows, macOS, Android, iOS e anche su router e sistemi embedded.
Integrazione nel kernel Linux → è incluso direttamente nel kernel Linux, garantendo alte prestazioni e basso consumo di risorse.
A cosa serve WireGuard:
VPN personale → per collegare in modo sicuro il proprio PC o smartphone alla rete di casa o del lavoro.
Accesso remoto → per raggiungere server, NAS o dispositivi della propria rete privata da ovunque nel mondo.
Reti aziendali → per interconnettere sedi diverse in modo sicuro e veloce.
Privacy e anonimato → nascondere il proprio traffico a provider o reti Wi-Fi pubbliche, come fanno i servizi VPN commerciali.
Uso in cloud e container → per collegare in sicurezza macchine virtuali o container distribuiti su diversi data center.
In sintesi: WireGuard è un protocollo VPN moderno, veloce e sicuro, che permette di creare connessioni cifrate tra dispositivi e reti.
Di seguito installazione su Gnu/Linux e Windows
WireGuard su Debian 12
Installazione
Su entrambi (server e client):
sudo apt update
sudo apt install wireguard -y
Generazione delle chiavi
Ogni dispositivo deve avere una coppia di chiavi privata e pubblica.
Esempio sul server:
wg genkey | tee server_private.key | wg pubkey > server_public.key
Sul client:
wg genkey | tee client_private.key | wg pubkey > client_public.key
Adesso hai 4 file in totale (2 sul server, 2 sul client).
Le chiavi pubbliche vanno scambiate tra server e client, le private restano segrete.
Configurazione del server
File: /etc/wireguard/wg0.conf
[Interface]
Address = 10.0.0.1/24
PrivateKey = <CHIAVE_PRIVATA_SERVER>
ListenPort = 51820
[Peer]
PublicKey = <CHIAVE_PUBBLICA_CLIENT>
AllowedIPs = 10.0.0.2/32
Configurazione del client
File: /etc/wireguard/wg0.conf
[Interface]
Address = 10.0.0.2/24
PrivateKey = <CHIAVE_PRIVATA_CLIENT>
[Peer]
PublicKey = <CHIAVE_PUBBLICA_SERVER>
Endpoint = <IP_PUBBLICO_SERVER>:51820
AllowedIPs = 0.0.0.0/0, ::/0
Avvio del tunnel
Sul server:
sudo wg-quick up wg0
Sul client:
sudo wg-quick up wg0
Per rendere WireGuard automatico all’avvio:
sudo systemctl enable wg-quick@wg0
Verifica
Su entrambi:
sudo wg
Vedrai informazioni sullo stato della connessione, pacchetti inviati/ricevuti, peer collegati.
Puoi anche provare un ping:
ping 10.0.0.1 # dal client verso il server
ping 10.0.0.2 # dal server verso il client
Questo è il setup base. Da qui puoi espandere:
Aggiungere più client (basta generare nuove coppie di chiavi).
Usare la VPN per accedere solo a certe reti (modificando
AllowedIPs
).Configurare il server come gateway per uscire su Internet.
Per gestire più client con WireGuard (multiutente)
1. Genera nuove chiavi per ogni client
Ogni client deve avere la sua coppia chiave privata/pubblica.
Sul client 2 (o sul server, poi copi):
wg genkey | tee client2_private.key | wg pubkey > client2_public.key
Ora hai:
client2_private.key
→ resta sul clientclient2_public.key
→ va copiato sul server
2. Configura il server per più client
Apri il file /etc/wireguard/wg0.conf
sul server e aggiungi una sezione [Peer]
per ogni nuovo client.
Esempio con 2 client:
[Interface]
Address = 10.0.0.1/24
PrivateKey = <CHIAVE_PRIVATA_SERVER>
ListenPort = 51820
# Client 1
[Peer]
PublicKey = <CHIAVE_PUBBLICA_CLIENT1>
AllowedIPs = 10.0.0.2/32
# Client 2
[Peer]
PublicKey = <CHIAVE_PUBBLICA_CLIENT2>
AllowedIPs = 10.0.0.3/32
NOTA: Ogni client deve avere un IP diverso (nel range 10.0.0.x/24
).
3. Configura i client
Su client1, /etc/wireguard/wg0.conf
:
[Interface]
Address = 10.0.0.2/24
PrivateKey = <CHIAVE_PRIVATA_CLIENT1>
[Peer]
PublicKey = <CHIAVE_PUBBLICA_SERVER>
Endpoint = <IP_PUBBLICO_SERVER>:51820
AllowedIPs = 0.0.0.0/0, ::/0
Su client2, /etc/wireguard/wg0.conf
:
[Interface]
Address = 10.0.0.3/24
PrivateKey = <CHIAVE_PRIVATA_CLIENT2>
[Peer]
PublicKey = <CHIAVE_PUBBLICA_SERVER>
Endpoint = <IP_PUBBLICO_SERVER>:51820
AllowedIPs = 0.0.0.0/0, ::/0
4. Avvio e test
Sul server:
sudo systemctl restart wg-quick@wg0
Su ciascun client:
sudo wg-quick up wg0
Verifica:
sudo wg
Vedrai entrambi i peer collegati.
Puoi testare con:
ping 10.0.0.1 # dal client verso il server
ping 10.0.0.2 # da client2 verso client1
5. Aggiungere altri client
Per ogni nuovo client:
Genera chiavi.
Aggiungi
[Peer]
sul server.Configura il file
wg0.conf
sul client con un IP unico.
💡 Consiglio pratico: se devi gestire tanti client, puoi usare uno script o un tool come wg-gen-web
o wireguard-manager
, che automatizzano la generazione delle chiavi e i file di configurazione.
WireGuard su Windows
Molti pensano che le VPN open source siano riservate a chi utilizza Linux. In realtà, grazie a WireGuard, chiunque può creare connessioni sicure e veloci anche da Windows, senza dover ricorrere a soluzioni proprietarie e spesso poco trasparenti.
🔒 Cos’è WireGuard?
WireGuard è un protocollo e un software VPN moderno, progettato per essere:
Sicuro → utilizza crittografia avanzata con algoritmi all’avanguardia.
Veloce → integrato direttamente nel kernel Linux, ma ottimizzato anche per Windows e altri sistemi.
Semplice → bastano pochi passaggi per configurarlo.
Open Source → il codice è pubblico, verificabile e mantenuto dalla comunità.
In poche parole, WireGuard permette di creare un “tunnel” sicuro tra il proprio PC e un server, come se fossero collegati alla stessa rete locale, anche a chilometri di distanza.
🖥️ Installare WireGuard su Windows
WireGuard ha un client ufficiale per Windows, gratuito e open source.
Vai sul sito ufficiale: https://www.wireguard.com/install/
Scarica la versione per Windows.
Installa l’applicazione come un normale programma.
Dopo l’installazione troverai l’icona di WireGuard nel menu Start.
⚙️ Configurazione base su Windows
WireGuard utilizza file di configurazione molto semplici, con estensione .conf
.
Questi file contengono:
La tua chiave privata (generata dal client).
L’indirizzo interno VPN che userai (es. 10.0.0.2
).
La chiave pubblica del server e il suo indirizzo IP.
Un esempio di configurazione client (Windows):[Interface]
PrivateKey = <chiave_privata_client>
Address = 10.0.0.2/24
[Peer]
PublicKey = <chiave_pubblica_server>
Endpoint = <IP_PUBBLICO_SERVER>:51820
AllowedIPs = 0.0.0.0/0
👉 Puoi importare questo file direttamente nell’app WireGuard su Windows cliccando su “Add Tunnel” → “Add empty tunnel” o “Import from file”.
🚀 Avviare la connessione
Una volta importato il file .conf
, basta selezionare il tunnel e cliccare su Activate.
Da quel momento tutto il tuo traffico passerà attraverso la VPN, in modo sicuro e cifrato.
Puoi verificare la connessione aprendo il prompt dei comandi e provando un ping all’indirizzo interno del server:
ping 10.0.0.1
🌍 Perché scegliere WireGuard su Windows?
È gratuito e open source → non ci sono costi nascosti né log delle tue attività.
È compatibile con Linux, macOS, Android e iOS → perfetto se vuoi collegare più dispositivi.
È veloce → WireGuard è più leggero di OpenVPN e IPSec.
È trasparente → sai esattamente cosa installi e come funziona.
✅ Conclusione
WireGuard non è solo un progetto per smanettoni Linux: è uno strumento alla portata di tutti.
Con pochi clic anche gli utenti Windows possono proteggere la propria connessione, navigare in sicurezza su reti pubbliche e accedere in modo sicuro alle proprie risorse di lavoro o di casa.
Se usi Windows ma credi nell’open source, WireGuard è la soluzione perfetta per avere una VPN sicura, veloce e libera.