VPN WireGuard · 10 min read · Sep 09, 2025
Installa WireGuard VPN su Debian 12

Wireguard è un protocollo VPN open-source alternativo a IPSec, IKEv2 e OpenVPN. Wireguard è progettato per sistemi operativi Linux e Unix, funziona nello spazio del kernel Linux, il che rende Wireguard più veloce e più affidabile. Wireguard è utilizzato per creare connessioni tunnel sicure tra due computer o più.
Wireguard mira a sostituire protocolli VPN come IPSec, IKEv2 e OpenVPN. Wireguard è più leggero, più veloce, facile da configurare e più efficiente. Allo stesso tempo, Wireguard non ha sacrificato l’aspetto della sicurezza del protocollo VPN. Wireguard supporta la crittografia moderna come il framework del protocollo Noise, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF e costruzioni sicure e fidate.
Questa guida ti mostrerà come installare Wireguard VPN sul server Debian 12 e configurare il client Wireguard su una macchina Linux.
Prerequisiti
Prima di iniziare, assicurati di avere questi requisiti:
- Un server Linux che esegue Debian 12.
- Un utente non root con privilegi sudo.
- Una macchina client - in questo caso utilizzando la distribuzione basata su Debian.
Preparazione del sistema
Prima di installare Wireguard, devi preparare il tuo server Debian apportando le seguenti modifiche:
- Abilitare il Port Forwarding tramite /etc/sysctl.conf
- Installare e configurare UFW
Ora iniziamo.
Abilitare il Port Forwarding
Per abilitare il port forwarding, devi abilitare il modulo del kernel net.ipv4.ip_forward per IPv4 o net.ipv6.conf.all.forwarding per IPv6. Questi moduli del kernel possono essere abilitati tramite il file /etc/sysctl.conf.
Apri il file /etc/sysctl.conf utilizzando il seguente comando dell’editor nano.
sudo nano /etc/sysctl.confInserisci la seguente configurazione per abilitare il port forwarding sia per IPv4 che per IPv6 (se necessario).
# Port Forwarding per IPv4
net.ipv4.ip_forward=1
# Port forwarding per IPv6
net.ipv6.conf.all.forwarding=1Salva il file ed esci dall’editor quando hai finito.
Ora applica le modifiche tramite il comando sysctl qui sotto.
sudo sysctl -pInstallazione di UFW
Il firewall predefinito su Debian è iptables, e ora installerai UFW. Utilizzerai sia UFW che iptables per il server Wireguard.
Esegui il comando apt qui sotto per aggiornare il tuo repository e installare UFW sul tuo sistema Debian.
sudo apt update && sudo apt install ufw -y
Successivamente, esegui il comando ufw qui sotto per aggiungere il profilo dell’applicazione OpenSSH e abilitare UFW. Digita y e premi INVIO per confermare, e dovresti ricevere il messaggio “ Il firewall è attivo e abilitato all’avvio del sistema “.
sudo ufw allow OpenSSH
sudo ufw enable
Infine, verifica lo stato di UFW utilizzando il comando qui sotto.
sudo ufw statusSe in esecuzione, dovresti ricevere l’output “ Stato: attivo. Vedrai anche che il profilo dell’applicazione OpenSSH è stato aggiunto a UFW.

Installazione del server Wireguard
Dopo aver configurato il server Debian, sei pronto per creare un server Wireguard VPN sulla tua macchina Debian. Completa i seguenti compiti per raggiungerlo:
- Installazione di Wireguard
- Generazione della chiave del server Wireguard
- Generazione della chiave del client Wireguard
- Configurazione dell’interfaccia Wireguard
- Impostazione del NAT per l’interfaccia Wireguard
Facciamolo.
Installazione di Wireguard
Per prima cosa, installa il pacchetto wireguard sul tuo server Debian eseguendo il seguente comando.
sudo apt install wireguardDigita y per procedere con l’installazione.

Generazione della chiave del server Wireguard
Dopo che il pacchetto wireguard è stato installato, il compito successivo è generare i certificati del server, che possono essere creati utilizzando lo strumento da riga di comando wg.
Esegui il seguente comando per generare la chiave privata del server wireguard in /etc/wireguard/server.key. Quindi, cambia i permessi della chiave privata del server in 0400, il che significa che disabiliterai l’accesso in scrittura al file.
wg genkey | sudo tee /etc/wireguard/server.key
sudo chmod 0400 /etc/wireguard/server.keySuccessivamente, esegui il seguente comando per generare la chiave pubblica del server wireguard in /etc/wireguard/server.pub.
sudo cat /etc/wireguard/server.key | wg pubkey | sudo tee /etc/wireguard/server.pub
Ora che hai generato la chiave privata in /etc/wireguard/server.key e la chiave pubblica in /etc/wireguard/server.pub per il tuo server wireguard. Puoi eseguire il comando cat qui sotto per mostrare il contenuto di entrambe le chiavi privata e pubblica.
cat /etc/wireguard/server.key
cat /etc/wireguard/server.pubPotresti avere un output diverso, ma le chiavi generate assomigliano a quelle seguenti:
Generazione della chiave del client Wireguard
Con la chiave del server wireguard generata, il compito successivo è generare chiavi per i client. Puoi generare chiavi client per ciascun utente, ma puoi anche utilizzare una singola chiave per più utenti.
In questo esempio, genererai una chiave client per un utente specifico alice.
Per iniziare, esegui il seguente comando per creare una nuova directory per memorizzare le chiavi client. In questo caso, le chiavi pubbliche e private per l’utente alice saranno generate nella directory /etc/wireguard/clients/alice.
mkdir -p /etc/wireguard/clients/aliceOra, esegui il seguente comando per generare la chiave privata /etc/wireguard/clients/alice/alice.key e la chiave pubblica /etc/wireguard/clients/alice/alice.pub per l’utente alice.
wg genkey | tee /etc/wireguard/clients/alice/alice.key
cat /etc/wireguard/clients/alice/alice.key | wg pubkey | tee /etc/wireguard/clients/alice/alice.pubInfine, esegui il comando qui sotto per mostrare il contenuto delle chiavi private e pubbliche per l’utente alice.
cat /etc/wireguard/clients/alice/alice.key
cat /etc/wireguard/clients/alice/alice.pubL’output simile a quello seguente verrà visualizzato:
Configurazione dell’interfaccia Wireguard
Ora che hai generato chiavi private e pubbliche sia per il server che per il client, il compito successivo è configurare l’interfaccia e il peer di Wireguard. Configurerai un’interfaccia per la rete VPN di Wireguard e un peer che si stabilirà tra il client e il server.
Crea una nuova configurazione di Wireguard /etc/wireguard/wg0.conf utilizzando il seguente comando dell’editor nano.
sudo nano /etc/wireguard/wg0.confInserisci la seguente configurazione nel file.
[Interface]
# Chiave privata del server Wireguard - server.key
PrivateKey = cNBb6MGaKhmgllFxSq/h9BdYfZOdyKvo8mjzb2STbW8=
# L'interfaccia Wireguard verrà eseguita su 10.10.0.1
Address = 10.10.0.1/24
# I client si connetteranno alla porta UDP 51820
ListenPort = 51820
# Assicurati che eventuali modifiche vengano salvate nel file di configurazione di Wireguard
SaveConfig = trueDi seguito i dettagli dei parametri che verranno utilizzati all’interno della sezione [Interface]:
- PrivateKey: Inserisci il contenuto della chiave privata del server wireguard server.key.
- Address: l’indirizzo IP che verrà assegnato all’interfaccia Wireguard. In questo caso, l’interfaccia wireguard avrà un indirizzo IP di 10.10.0.1.
- ListenPort: Questa è la porta che verrà utilizzata dal client per connettersi al server wireguard. In questo caso, verrà utilizzata la porta 51820.
- SaveConfig: il valore true significa che eventuali modifiche verranno salvate dallo stato attuale dell’interfaccia allo spegnimento.
Ora aggiungi la seguente sezione [Peer] per i client wireguard.
[Peer]
# Chiave pubblica del client Wireguard - alice.pub
PublicKey = 3ZoaoVgHOioZnKzCrF/XALAv70V4vyJXpl/UO7AKYzA=
# indirizzi IP VPN dei client che consenti di connettersi
# possibile specificare subnet ⇒ [10.10.0.0/24]
AllowedIPs = 10.10.0.2/24Di seguito i parametri utilizzati all’interno della sezione [Peer]:
PublicKey: Inserisci la chiave pubblica del client wireguard in questo parametro. In questo caso, il contenuto della chiave pubblica alice.pub.
AllowedIPs: Definisci l’indirizzo IP per il client e instrada il traffico all’interfaccia wireguard.
Salva e chiudi il file quando hai finito.
Infine, esegui il seguente comando per aprire la porta 51820/udp per le connessioni dei client.
sudo ufw allow 51820/udpImpostazione del NAT per l’interfaccia Wireguard
Per prima cosa, esegui il seguente comando per mostrare l’interfaccia del gateway predefinito utilizzata per connettersi a Internet.
sudo ip route list defaultIn questo caso, il gateway di rete Internet predefinito è l’interfaccia eth0.
Ora apri la configurazione di wireguard /etc/wireguard/wg0.conf utilizzando il seguente comando dell’editor nano.
sudo nano /etc/wireguard/wg0.confAggiungi la seguente configurazione sotto la sezione [Interface], e assicurati di cambiare l’interfaccia eth0 con l’interfaccia del gateway Internet predefinito.
[Interface]
...
PostUp = ufw route allow in on wg0 out on eth0
PostUp = iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
PostUp = ip6tables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
PreDown = ufw route delete allow in on wg0 out on eth0
PreDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
PreDown = ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADESalva e chiudi il file quando hai finito.
A questo punto, hai configurato il tuo server Wireguard.
Gestione del servizio Wireguard
Ora che l’installazione e la configurazione del server Wireguard sono complete, sei pronto per avviare il servizio Wireguard sul tuo sistema Debian. Questo può essere fatto tramite il comando systemctl o utilizzando l’utilità wg-quick.
Per avviare e abilitare il server wireguard, esegui il seguente comando systemctl. Con il nome del servizio wg-quick@wg0, avvierai Wireguard all’interno dell’interfaccia wg0, che si basa sulla configurazione /etc/wireguard/wg0.conf.
sudo systemctl start [email protected]
sudo systemctl enable [email protected]Ora verifica il servizio wirguard@wg0 utilizzando il seguente comando.
sudo systemctl status [email protected]Se il servizio è in esecuzione, verrà visualizzato il seguente output.

Successivamente, esegui il comando ip qui sotto per mostrare i dettagli dell’interfaccia wireguard wg0. E dovresti vedere che l’interfaccia wireguard wg0 ha un indirizzo IP 10.10.0.1.
sudo ip a show wg0
Puoi anche avviare o fermare il wireguard manualmente tramite il comando wg-quick qui sotto.
sudo wg-quick up /etc/wireguard/wg0.conf
sudo wg-quick down /etc/wireguard/wg0.confCon questo, hai configurato il server wireguard e lo hai avviato in background tramite il comando systemctl. Il tuo client è ora pronto per connettersi al server wireguard.
Impostazione del client Wireguard su distribuzione basata su Debian
Nella sezione seguente, configurerai il client wireguard per la distribuzione basata su Debian. Installerai gli strumenti wireguard, creerai una configurazione del client wireguard, ti connetterai al server wireguard, verificherai la connessione tramite l’utilità wg e accederai a Internet.
Installa il pacchetto wireguard-tools sulla macchina client tramite APT. La macchina client è una distribuzione basata su Debian, quindi verrà utilizzato il gestore pacchetti APT.
sudo apt install wireguard-tools resolvconf
Dopo aver installato gli strumenti wireguard, crea una nuova configurazione del client wireguard /etc/wireguard/wg-alice.conf utilizzando il seguente editor nano.
sudo nano /etc/wireguard/wg-alice.confInserisci la seguente configurazione nel file.
[Interface]
# Definisci l'indirizzo IP per il client - deve corrispondere a wg0 sul server Wireguard
Address = 10.10.0.2/24
# server DNS specifico
DNS = 1.1.1.1
# Chiave privata per il client - alice.key
PrivateKey = cPDg6SQHz/3l2R83lMWPzmR6/mMKnKp9PNImbtB6nGI=
[Peer]
# Chiave pubblica del server Wireguard - server.pub
PublicKey = APyBQvTkYVm0oakzcQUQViarwx1aIYz5wb/g2v2xdUE=
# Consenti a tutto il traffico di essere instradato tramite Wireguard VPN
AllowedIPs = 0.0.0.0/0
# Indirizzo IP pubblico del server Wireguard
Endpoint = 192.168.128.15:51820
# Invia Keepalive ogni 25 secondi
PersistentKeepalive = 25Salva e chiudi il file quando hai finito.
Di seguito alcuni dei parametri all’interno della sezione [Interface] per i client wireguard:
- Address: specifica l’indirizzo IP interno dell’interfaccia wireguard sulla macchina client.
- DNS: imposta il server DNS predefinito per il client.
- PrivateKey: la chiave privata del client wireguard, in questo caso, è alice.key.
E all’interno della sezione [Peer] nella configurazione del client wireguard:
- PublicKey: questa è la chiave pubblica del server wireguard, che è server.pub.
- AllowedIPs: consenti a qualsiasi accesso di essere instradato tramite l’interfaccia wireguard.
- Endpoint: l’indirizzo IP e la porta del server wireguard.
- PersistentKeepalive: invia keepalive ogni x secondi per mantenere la connessione attiva.
Successivamente, esegui il comando wg-quick qui sotto per avviare il wireguard sull’interfaccia wg-alice.
sudo wg-quick up wg-aliceSe tutto va bene, verrà mostrato un output simile a quello seguente.

Dopo di che, esegui il comando ip qui sotto per controllare i dettagli dell’interfaccia wg-alice. E dovresti vedere l’interfaccia wg-alice con l’indirizzo IP locale 10.10.0.2.
sudo ip a show wg-alice
Successivamente, verifica la connessione a Internet della macchina client eseguendo il seguente comando.
ping -c3 10.10.0.1
ping -c3 1.1.1.1
ping -c3 duckduckgo.comSe l’installazione del server wireguard è stata eseguita con successo, riceverai risposta da ciascun server di destinazione come segue:

Inoltre, puoi anche visualizzare i dettagli delle connessioni tra il server wireguard e il client eseguendo il seguente comando sul server wireguard o sulla macchina client.
wg showL’output simile a quello seguente verrà visualizzato.

Infine, per fermare la connessione wireguard sulla macchina client, esegui il comando wg-quick qui sotto.
sudo wg-quick down wg-alice
Conclusione
Per concludere, hai ora completato l’installazione di Wireguard VPN sul server Debian 12 passo dopo passo. Hai anche configurato una macchina client basata su Debian con Wireguard e ti sei connesso al server Wireguard. Tenendo presente questo, puoi ora aggiungere più client aggiungendo più chiavi Wireguard e configurazioni Peer.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.