Come configurare WireGuard su Ubuntu 24.04 LTS e Linux Mint: guida passo passo
Guida completa passo dopo passo per configurare WireGuard su Ubuntu 24.04 LTS e Linux Mint tramite NetworkManager (interfaccia grafica) e CLI. In 60-90 minuti otterrai un VPN stabile con avvio automatico, DNS e rotte corrette, oltre a consigli per risolvere problemi comuni e impostazioni avanzate.
Contenuto dell'articolo
- Introduzione
- Preparativi preliminari
- Concetti base
- Passo 1: installazione e verifica ambiente
- Passo 2: preparazione configurazione e chiavi
- Passo 3: configurazione tramite networkmanager su ubuntu 24.04 (gnome)
- Passo 4: configurazione tramite networkmanager su linux mint (cinnamon)
- Passo 5: configurazione tramite cli (nmcli): importazione o creazione manuale
- Passo 6: dns, rotte e scelta tra tunnel completo e parziale
- Passo 7: avvio automatico, killswitch e affidabilità
- Passo 8: avvio rapido con importazione config pronta e alternativa pratica
- Verifica del risultato
- Errori tipici e soluzioni
- Funzionalità aggiuntive
- Faq
- Conclusione
Introduzione
In questa guida passo passo imparerai da zero come configurare WireGuard su Ubuntu 24.04 LTS e Linux Mint con due metodi: tramite l’interfaccia grafica NetworkManager e da riga di comando (CLI). Vedremo come importare rapidamente una configurazione pronta, creare manualmente un profilo, abilitare l’avvio automatico, configurare DNS e rotte (tunnel completo o split-tunnel) e diagnosticare e risolvere i problemi più comuni. Alla fine avrai una connessione VPN stabile e prevedibile, gestibile con un semplice click e che si attiva automaticamente all’avvio del sistema.
Questa guida è perfetta per utenti Linux alle prime armi che cercano istruzioni chiare senza teoria inutile, ma con spiegazioni comprensibili. Troverai inoltre sezioni con trucchi avanzati: setup di un killswitch, regolazioni precise di MTU, gestione di più peer e script basati su nmcli.
Cosa serve sapere in anticipo? Nulla di complesso: conoscenze base del sistema, sapere come inserire comandi nel terminale e riconoscere le impostazioni di rete. Il resto lo affronteremo passo passo. Previeni 60-90 minuti per completare tutta la procedura, comprensivi di test e correzioni di eventuali piccoli intoppi.
Risultato finale: una configurazione WireGuard funzionante, gestita tramite NetworkManager (con pulsante "Attiva/Disattiva" nell’area di notifica o nelle impostazioni), rotte affidabili, DNS corretti senza perdite, avvio automatico e un piano chiaro su come agire se qualcosa non va.
Preparativi preliminari
Prima di iniziare, assicurati di avere tutto il necessario. Qui trovi i requisiti minimi e perché servono.
Strumenti e accessi necessari
- Accesso a un sistema con Ubuntu 24.04 LTS (Desktop) o Linux Mint (ultima versione basata su Ubuntu 24.04). Può essere un PC fisico o una macchina virtuale.
- Diritti da amministratore (sudo). Servono per installare pacchetti e modificare la rete.
- Dati per connettersi al server VPN WireGuard: può essere un file di configurazione .conf già pronto o un set di parametri: chiave pubblica del server, indirizzo e porta del server, tua chiave privata, reti permesse (AllowedIPs), indirizzo dell’interfaccia (Address) e opzionalmente il DNS.
Requisiti di sistema
- Kernel Linux 5.6+ (in Ubuntu 24.04 e nelle versioni moderne di Linux Mint è già integrato).
- NetworkManager versione 1.40+ con supporto nativo a WireGuard (presente nelle build desktop standard di Ubuntu 24.04 e Linux Mint basate su di essa).
- Pacchetti wireguard-tools (per generare chiavi e fare diagnosi) e nmcli (parte di NetworkManager) per la CLI.
Cosa installare prima di iniziare
- Apri il terminale.
- Aggiorna gli indici dei pacchetti: sudo apt update
- Installa gli strumenti: sudo apt install -y network-manager wireguard wireguard-tools
- Controlla la versione di NetworkManager: nmcli -v. Deve essere 1.40+ o superiore. Se la versione è più vecchia, aggiorna il sistema con sudo apt upgrade -y e poi riavvia con sudo reboot.
- Verifica che NetworkManager sia attivo: systemctl status NetworkManager. Lo stato dovrebbe essere active (running).
Backup
Se prevedi di sostituire profili VPN esistenti o modificare impostazioni di rete, fai un backup prima:
- Esporta i profili NetworkManager: nmcli connection export "nome-connessione" ~/backup-nome-connessione.nmconnection
- Salva le configurazioni WireGuard correnti: se hai file in /etc/wireguard o ~/.config/wireguard, copiali in una cartella sicura: cp -a /etc/wireguard ~/wg-backup
⚠️ Attenzione: Chiudi o sospendi attività di rete critiche durante la configurazione (accessi remoti, download attivi) per evitare che un cambio improvviso delle rotte interrompa le connessioni.
Concetti base
Prima di partire con la configurazione, spieghiamo in modo semplice alcuni termini. Questo ti aiuterà a capire meglio i parametri e cosa controllare durante la risoluzione problemi.
- Interfaccia WireGuard — interfaccia di rete virtuale nel sistema (di solito wg0, ma puoi scegliere un nome qualsiasi). Attraverso questa interfaccia passa il traffico cifrato.
- Chiavi — WireGuard usa una chiave privata sul client e una pubblica sul server (e viceversa). Le chiavi pubbliche identificano i peer, la privata resta solo sul client.
- Peer — l'altra parte del tunnel. Per il client il peer è tipicamente il server.
- AllowedIPs — elenco delle reti che devono passare dal tunnel. Se metti 0.0.0.0/0, ::/0 tutto il traffico passa via VPN (tunnel completo). Se metti solo alcune subnet creerai uno split-tunnel.
- Endpoint — indirizzo e porta del server WireGuard remoto.
- DNS — server DNS usati dal sistema dentro il tunnel. Nel tunnel completo conviene usare i DNS del provider VPN per evitare perdite.
- MTU — dimensione massima del pacchetto. A volte serve abbassare l’MTU (ad es. a 1420 o 1280) per evitare frammentazione e instabilità.
- PersistentKeepalive — intervallo di invio di pacchetti “vuoti” per mantenere la connessione attiva dietro NAT. Di solito 25 secondi va bene.
Consiglio: Se non sei sicuro dei valori, parti da un file di configurazione pronto. Puoi importarlo e verificare subito il funzionamento, poi capirai a cosa servono i vari campi e potrai modificare manualmente.
Passo 1: installazione e verifica ambiente
Obiettivo del passo
Dopo questo step sarai sicuro di avere i pacchetti necessari, che NetworkManager supporta WireGuard e che i servizi di rete di base funzionano correttamente.
Istruzioni passo passo
- Apri il terminale con Ctrl+Alt+T.
- Aggiorna lista pacchetti: sudo apt update
- Installa i pacchetti: sudo apt install -y network-manager wireguard wireguard-tools
- Controlla versione NM: nmcli -v. Dovrebbe mostrare ad esempio nmcli tool, version 1.44.x o superiore.
- Verifica che il servizio sia attivo: systemctl is-active NetworkManager. Deve rispondere active.
- Controlla la presenza di wg: wg --version. Deve mostrare la versione di wireguard-tools.
- Trova il nome della connessione internet attiva: nmcli connection show --active. Ricordati il nome dell’interfaccia con accesso a internet (es. "Wired connection 1" o "Wi-Fi casa").
⚠️ Attenzione: Se hai altri gestori di rete attivi, disattivali. Usare più tool contemporaneamente può causare conflitti di rotta.
Consiglio: Se hai aggiornato NetworkManager o kernel, riavvia il sistema con sudo reboot per evitare stati sospesi dei servizi.
Risultato atteso
I pacchetti sono installati, i comandi nmcli e wg sono disponibili e NetworkManager è attivo. Sei pronto a creare il profilo WireGuard.
✅ Controllo: Esegui nmcli general status. Le colonne STATE e CONNECTIVITY devono indicare che sei connesso. Il comando wg non deve dare errori.
Problemi comuni e soluzioni
- Problema: nmcli non trovato. Causa: NetworkManager non installato. Soluzione: sudo apt install -y network-manager.
- Problema: wg non trovato. Causa: manca wireguard-tools. Soluzione: sudo apt install -y wireguard-tools.
- Problema: NetworkManager non parte. Causa: altro gestore di rete in conflitto. Soluzione: disattiva o rimuovi altri gestori e assicurati di usare la configurazione desktop standard.
Passo 2: preparazione configurazione e chiavi
Obiettivo del passo
Ottenere un file .conf pronto per importazione o creare da zero chiavi e configurazione personalizzata. Avrai alla fine tutti i dati da inserire in GUI o CLI.
Opzione A: configurazione pronta
- Copia il file di configurazione WireGuard (es. wg0.conf) nella home dell’utente. Puoi anche usare ~/.config/wireguard per maggiore ordine.
- Verifica i permessi: chmod 600 ~/.config/wireguard/wg0.conf. Il file contiene la chiave privata: proteggilo.
- Aprilo per controllare i parametri: cat ~/.config/wireguard/wg0.conf. Deve avere le sezioni [Interface] e [Peer].
Opzione B: creazione manuale di chiavi e config
- Crea cartella di lavoro: mkdir -p ~/.config/wireguard && cd ~/.config/wireguard
- Imposta maschera permessi: umask 077 (garantisce accesso solo a te ai file creati).
- Genera chiavi privata e pubblica: wg genkey | tee client_private.key | wg pubkey > client_public.key
- Conserva le chiavi in luogo sicuro. Non condividere la chiave privata. Invia la chiave pubblica all’amministratore server per l’aggiunta del client.
- Prepara i valori per i campi: indirizzo locale interfaccia (es. 10.14.0.2/32), indirizzo e porta server (es. 203.0.113.10:51820), chiave pubblica server, lista AllowedIPs (0.0.0.0/0, ::/0 per tunnel completo o subnet per split-tunnel), DNS (es. 10.14.0.1).
- Crea il file di configurazione: nano wg0.conf e scrivi la struttura tipo: [Interface] Address = 10.14.0.2/32, fd42:42:42::2/128 PrivateKey = INSERISCI_LA_CHIAVE_PRIVATA DNS = 10.14.0.1 [Peer] PublicKey = INSERISCI_LA_CHIAVE_PUBBLICA_DEL_SERVER AllowedIPs = 0.0.0.0/0, ::/0 Endpoint = 203.0.113.10:51820 PersistentKeepalive = 25
- Salva il file e chiudi l’editor. Imposta permessi: chmod 600 wg0.conf.
Consiglio: Se gestisci anche il server, aggiungi la chiave pubblica client nella sua configurazione e assegna un indirizzo libero della subnet. Senza questo il server non riconoscerà il client e la connessione non si stabilirà.
Risultato atteso
Hai un file wg0.conf pronto per l’importazione o un insieme di chiavi e dati da inserire manualmente in NetworkManager o nmcli.
✅ Controllo: Verifica che wg0.conf sia leggibile con sezioni corrette e che la chiave privata sembri una lunga stringa base64. Il comando ls -l deve mostrare permessi -rw------- per il file.
Problemi comuni e soluzioni
- Problema: manca la chiave pubblica server. Causa: dati incompleti dall’amministratore. Soluzione: richiedi PublicKey ed Endpoint.
- Problema: non conosci l’indirizzo interfaccia. Causa: mancanza del piano indirizzi. Soluzione: usa l’indirizzo dal file pronto o chiedi all’amministratore.
- Problema: subnet client e server non coincidono. Causa: conflitto tra indirizzi. Soluzione: verifica Address e subnet su entrambi i lati.
Passo 3: configurazione tramite NetworkManager su Ubuntu 24.04 (GNOME)
Obiettivo del passo
Creare e attivare la connessione VPN WireGuard usando l’interfaccia grafica di Ubuntu 24.04, per gestirla con un semplice pulsante.
Istruzioni passo passo (importazione del file pronto)
- Apri “Impostazioni” (icona ingranaggio nel dock o nel menu di sistema).
- Vai alla sezione “Rete”.
- Trova la sezione “VPN” e clicca sul “+” (Aggiungi VPN).
- Seleziona “Importa da file…”.
- Seleziona il file wg0.conf e premi “Apri”.
- Si aprirà una finestra con le impostazioni del profilo. Controlla il nome (es. "WireGuard wg0"), indirizzi, chiavi, AllowedIPs e Endpoint. Modifica se serve.
- Clicca su “Salva”.
- Nel elenco delle VPN comparirà il nuovo profilo. Attiva l’interruttore a destra del nome.
Istruzioni passo passo (configurazione manuale senza file)
- Apri “Impostazioni” → “Rete” → “VPN” → “+”.
- Scegli “WireGuard” (creazione manuale, non importazione).
- Nel campo “Nome connessione” inserisci un nome chiaro, es. “WG Casa”.
- Nel campo “Nome interfaccia” inserisci wg0 (o lascia quello suggerito automaticamente).
- Incolla la chiave privata client nel campo “Chiave privata”. Se non ce l’hai, clicca per generarne una (alcuni ambienti GNOME offrono questa funzione), poi esporta la chiave pubblica da passare al server.
- Inserisci gli “Indirizzi” (es. 10.14.0.2/32 e, se serve, fd42:42:42::2/128). Usa sempre la notazione con maschera.
- Nel campo “DNS” aggiungi l’indirizzo DNS interno al tunnel (es. 10.14.0.1). Questo evita perdite di DNS.
- Nella sezione “Peer”: clicca “Aggiungi peer”. Inserisci chiave pubblica server, Endpoint (es. 203.0.113.10:51820), AllowedIPs. Per tunnel completo: 0.0.0.0/0, ::/0. Per split-tunnel, inserisci solo le subnet necessarie. Metti PersistentKeepalive a 25 se sei dietro NAT.
- Clicca “Salva”.
- Attiva la connessione VPN tramite l’interruttore in “VPN” o dal menu rete nell’area di notifica.
Consiglio: Se dopo aver attivato la VPN perdi accesso alla rete locale (ad esempio al router), verifica se stai usando un tunnel completo (0.0.0.0/0). Se vuoi mantenere l’accesso alle LAN locali, usa uno split-tunnel aggiungendo le subnet locali nelle eccezioni.
⚠️ Attenzione: Non usare contemporaneamente wg-quick e NetworkManager per la stessa interfaccia (ad es. wg0). Questo causa conflitti nella gestione e rotte imprevedibili.
Risultato atteso
In “Rete” → “VPN” appare il profilo WireGuard. L’interruttore “On/Off” avvia e disattiva il tunnel protetto.
✅ Controllo: Dopo attivazione, esegui nel terminale wg show. Dovresti vedere la tua interfaccia (wg0), la chiave pubblica server come peer e statistiche traffico. nmcli connection show --active deve mostrare la VPN attiva.
Problemi comuni e soluzioni
- Problema: manca il campo WireGuard nella creazione VPN. Causa: NetworkManager o desktop obsoleto. Soluzione: aggiorna sistema, assicurati di usare desktop standard con NM supportato e riapri le impostazioni.
- Problema: connessione attiva ma nessun traffico. Causa: AllowedIPs o DNS sbagliati. Soluzione: verifica rotte (tunnel completo o split-tunnel), aggiungi DNS corretto dal tunnel.
- Problema: disconnessioni frequenti. Causa: NAT o firewall. Soluzione: imposta PersistentKeepalive=25.
Passo 4: configurazione tramite NetworkManager su Linux Mint (Cinnamon)
Obiettivo del passo
Creare e attivare un profilo WireGuard su Linux Mint usando gli strumenti standard disponibili nelle impostazioni di sistema di Cinnamon o nell’editor connessioni NM.
Istruzioni passo passo (tramite “Connessioni di rete”)
- Apri il menu “Start” di Linux Mint.
- Vai su “Impostazioni” → “Rete” oppure avvia “Connessioni di rete” (nm-connection-editor). In alternativa, clicca sull’icona rete nel tray → “Impostazioni di rete” → “VPN”.
- Nel pannello “Connessioni di rete” clicca “+” (Aggiungi) in basso.
- Seleziona “WireGuard” dalla lista tipi (oppure “Importa da file…” se hai un wg0.conf pronto).
- Se importi: indica il percorso del file, verifica i campi, salva.
- Se configuri manualmente: dai un nome alla connessione (es. “WG Mint”), nome interfaccia (wg0), incolla la chiave privata, indica “Indirizzi”, “DNS” (es. 10.14.0.1), poi aggiungi il “Peer” (chiave pubblica server, Endpoint, AllowedIPs, PersistentKeepalive).
- Clicca su “Salva” e chiudi.
- Attiva la connessione cliccando sull’icona rete nel tray, scegli il profilo WireGuard e clicca per attivare.
Consiglio: Se temi errori digitando la chiave privata, incollala prima in un editor di testo, controlla visivamente lunghezza e assenza di caratteri strani e solo dopo incollala nel campo “Chiave privata”.
Risultato atteso
Il profilo WireGuard appare nella lista connessioni rete, pronto da attivare dal tray o dall’editor connessioni.
✅ Controllo: Apri il terminale e esegui ip addr show wg0. L’interfaccia wg0 deve avere il tuo indirizzo (es. 10.14.0.2/32). Il comando wg show deve mostrare il peer e statistiche traffico dopo il primo ping.
Problemi comuni e soluzioni
- Problema: manca il tipo WireGuard. Causa: vecchia versione di nm-connection-editor o mancanza supporto. Soluzione: aggiorna sistema e installa wireguard-tools; riavvia “Connessioni di rete”.
- Problema: la connessione non appare nel tray. Causa: profilo non salvato o NM disattivato. Soluzione: riavvia NetworkManager (sudo systemctl restart NetworkManager) e prova di nuovo.
Passo 5: configurazione tramite CLI (nmcli): importazione o creazione manuale
Obiettivo del passo
Imparare a fare le stesse operazioni senza GUI: importare una config pronta o creare un profilo da zero con nmcli. Utile per automazioni, server ma anche desktop avanzati.
Importare file .conf pronto
- Verifica di avere il file: ~/.config/wireguard/wg0.conf con permessi corretti (chmod 600).
- Importalo in NM: nmcli connection import type wireguard file ~/.config/wireguard/wg0.conf
- Controlla che il profilo sia presente: nmcli connection show | grep wireguard o cerca per nome.
- Attivalo: nmcli connection up "wg0" o con il nome esatto dato da NM.
Creazione manuale profilo
- Crea profilo: nmcli connection add type wireguard con-name wg-home ifname wg0 ipv4.method manual ipv6.method ignore
- Imposta indirizzi: nmcli connection modify wg-home ipv4.addresses 10.14.0.2/32. Se usi IPv6, aggiungi: nmcli connection modify wg-home ipv6.method manual ipv6.addresses fd42:42:42::2/128
- Imposta chiave privata: nmcli connection modify wg-home wireguard.private-key "LA_TUA_CHIAVE_PRIVATA"
- MTU (opzionale): nmcli connection modify wg-home 802-3-ethernet.mtu 1420 oppure usa wireguard.mtu se la tua versione NM lo supporta
- DNS per tunnel completo: nmcli connection modify wg-home ipv4.dns 10.14.0.1 ipv4.ignore-auto-dns yes
- Aggiungi peer: nmcli connection modify wg-home +wireguard-peer.public-key "CHIAVE_PUBBLICA_SERVER" +wireguard-peer.endpoint "203.0.113.10:51820" +wireguard-peer.allowed-ips "0.0.0.0/0,::/0" wireguard-peer.persistent-keepalive 25
- Attiva profilo: nmcli connection up wg-home
Split-tunnel con nmcli
- Modifica AllowedIPs peer: nmcli connection modify wg-home wireguard-peer.allowed-ips "10.14.0.0/24,192.168.50.0/24"
- Impedisci che la rotta principale vada via VPN: nmcli connection modify wg-home ipv4.never-default yes
- Per usare DNS locale, non impostare ipv4.dns nel profilo wg o configura split-DNS solo per domini specifici tramite NM e systemd-resolved. In casi semplici basta non modificare il DNS.
- Applica le modifiche: nmcli connection down wg-home && nmcli connection up wg-home
Consiglio: Per vedere tutti i parametri e confermare che siano applicati: nmcli connection show wg-home. Per visualizzare lo stato dell’interfaccia attiva: nmcli device show wg0.
Risultato atteso
Il profilo WireGuard è creato, importato o configurato manualmente. Si attiva con nmcli connection up e appare tra le connessioni attive.
✅ Controllo: Esegui wg show e ip route. Con tunnel completo vedrai la rotta di default via wg0, con split-tunnel solo le reti elencate. nmcli connection show --active deve mostrare il tuo profilo.
Problemi comuni e soluzioni
- Problema: nmcli dà errore modificando il peer. Causa: errore di battitura nella chiave parametro. Soluzione: controlla i prefissi wireguard-peer.* e usa il + per aggiungere peer.
- Problema: connessione attiva ma zero traffico. Causa: rotta o DNS errati. Soluzione: per tunnel completo usa AllowedIPs 0.0.0.0/0, ::/0 e imposta DNS tunnel.
- Problema: non si attiva profilo. Causa: interfaccia occupata da wg-quick. Soluzione: disattiva wg-quick (sudo wg-quick down wg0) e usa solo NM.
Passo 6: DNS, rotte e scelta tra tunnel completo e parziale
Obiettivo del passo
Garantire che il traffico passi correttamente (solo ciò che serve via VPN) e che le richieste DNS non sfuggano fuori dal tunnel.
Configurazione passo per passo in GUI
- Apri profilo WireGuard in “Impostazioni” → “Rete” → “VPN” (Ubuntu) o “Connessioni di rete” (Mint).
- Per tunnel completo assicurati che nel peer siano presenti AllowedIPs 0.0.0.0/0, ::/0. Nel campo DNS dell’interfaccia aggiungi l’indirizzo DNS tunnel (es. 10.14.0.1).
- Per split-tunnel, in AllowedIPs elenca solo le subnet necessarie (es. 10.14.0.0/24). Nelle impostazioni generali del profilo abilita, se disponibile, “Non usare come predefinito” per IPv4 (equivalente a ipv4.never-default yes) tramite parametri avanzati (alcuni GUI gestiscono automaticamente questa situazione tramite AllowedIPs).
- Salva e riattiva la connessione.
Configurazione passo per passo in CLI
- Tunnel completo: nmcli connection modify wg-home wireguard-peer.allowed-ips "0.0.0.0/0,::/0" ipv4.dns 10.14.0.1 ipv4.ignore-auto-dns yes
- Split-tunnel: nmcli connection modify wg-home wireguard-peer.allowed-ips "10.14.0.0/24" ipv4.never-default yes
- Applica modifiche: nmcli connection down wg-home && nmcli connection up wg-home
Consiglio: Se i siti sono lenti o instabili, prova a ridurre l’MTU a 1420 o 1280. In GUI cerca l’opzione MTU nei parametri avanzati dell’interfaccia; in CLI: nmcli connection modify wg-home 802-3-ethernet.mtu 1420 e riattiva il profilo.
Risultato atteso
Le rotte corrispondono allo scenario scelto: tunnel completo per tutto il traffico o split-tunnel solo per reti selezionate. Le richieste DNS sono risolte senza perdite.
✅ Controllo: Esegui ip route e verifica che la rotta di default punti a wg0 per tunnel completo. Controlla DNS con resolvectl status: devono comparire i server DNS del tunnel. Esegui un ping a un indirizzo nel VPN (es. 10.14.0.1) e aspetta risposta.
Problemi comuni e soluzioni
- Problema: risoluzione nomi instabile. Causa: conflitto DNS tra interfacce. Soluzione: imposta ipv4.ignore-auto-dns yes e specifica DNS tunnel.
- Problema: alcune risorse indisponibili con tunnel completo. Causa: firewall blocca il traffico senza regole corrette. Soluzione: disabilita temporaneamente firewall esterni o consenti traffico su wg0 e verso Endpoint.
Passo 7: avvio automatico, killswitch e affidabilità
Obiettivo del passo
Fare in modo che la VPN si avvii automaticamente all’accensione e che il traffico non esca in chiaro se il tunnel cade improvvisamente.
Avvio automatico tramite NetworkManager
- Apri il profilo WireGuard in GUI.
- Attiva l’opzione “Connetti automaticamente all’avvio” (in alcune interfacce “Autoconnect”).
- Da CLI: nmcli connection modify wg-home connection.autoconnect yes
Killswitch di base con UFW
- Abilita UFW se serve e non è attivo: sudo ufw enable
- Blocca il traffico in uscita di default: sudo ufw default deny outgoing
- Consenti traffico verso server WireGuard (es. 203.0.113.10 porta 51820 UDP): sudo ufw allow out to 203.0.113.10 port 51820 proto udp
- Consenti traffico tramite interfaccia wg0: sudo ufw allow out on wg0
- Se usi split-tunnel, consenti reti locali fuori VPN: sudo ufw allow out to 192.168.0.0/16
- Controlla lo stato: sudo ufw status verbose
⚠️ Attenzione: Una configurazione firewall errata può bloccare accesso a internet e SSH. Se sei su macchina remota, testa regole in sessione separata e preparati a ripristinare.
Affidabilità e robustezza
- Imposta PersistentKeepalive=25 sul peer se il client è dietro NAT.
- Abbassa MTU a valori stabili se noti frammentazione o perdite.
- Se serve, abilita “autoreconnect”: NetworkManager tenta di ristabilire la connessione; puoi rafforzare con hook systemd o script nm-dispatcher.
Consiglio: Per lavoro remoto conserva copia delle chiavi e profili su unità esterne o gestori password sicuri. In emergenza risparmi tempo.
Risultato atteso
La VPN parte da sola all’avvio e, se il tunnel cade, il traffico non esce senza protezione (se killswitch attivo).
✅ Controllo: Riavvia il sistema. Esegui nmcli connection show --active: il profilo WireGuard deve essere attivo. Disattiva la VPN e verifica che il traffico in uscita sia bloccato se hai abilitato il killswitch.
Problemi comuni e soluzioni
- Problema: UFW blocca tutto. Causa: regole troppo rigide. Soluzione: temporaneamente imposta sudo ufw default allow outgoing e riavvia NM.
- Problema: avvio automatico non funziona. Causa: conflitti di profili o ritardi rete. Soluzione: abilita “Aspetta rete” nei servizi, aggiungi delay tramite systemd o script nm-dispatcher.
Passo 8: avvio rapido con importazione config pronta e alternativa pratica
Obiettivo del passo
Mostrare il metodo più veloce: prendere un file config pronto, importarlo e iniziare subito. Indicare dove trovare tali configurazioni in modo semplice e legale.
Istruzioni passo passo
- Ottieni il file di configurazione WireGuard dal tuo amministratore o provider VPN personale.
- Apri “Impostazioni” → “Rete” → “VPN” → “+” → “Importa da file…” (Ubuntu) oppure “Connessioni di rete” → “+” → “Importa da file…” (Linux Mint).
- Seleziona il file .conf e clicca “Apri”.
- Verifica che i campi siano popolati: chiave privata, indirizzi, DNS, peer con chiave pubblica server, AllowedIPs ed Endpoint.
- Salva il profilo e attiva la VPN.
Consiglio: Se importi più profili (es. “Casa”, “Lavoro”, “Viaggi”), dai nomi chiari e attiva l’opzione “Mostra nel menu” per selezionarli con due clic.
Consiglio esperto per scelta soluzione pronta
Se vuoi risultati rapidi e senza complicazioni di server, prova il servizio vpn.how. Offre VPN personale con IP dedicato non condiviso. Supporta WireGuard, OpenVPN, IKEv2, L2TP, SSTP, così puoi scegliere il protocollo più adatto. Disponibile in molte città come Mosca, San Pietroburgo, Amsterdam, Francoforte, Londra, New York, San Jose, Chicago, Singapore, Sydney, Madrid, Helsinki, Stoccolma, Varsavia, Copenhagen e Stavanger. Pagamenti comodi: carte russe (incluse Tinkoff e Ozon), SBP, USDT/BTC. Tariffe da 490 ₽ al giorno o 2490 ₽ al mese, con sconti per periodi lunghi. Il server si attiva in 5 minuti dall’acquisto, senza log. Nel pannello utente hai file config già pronti per WireGuard, OpenVPN e IKEv2: scarichi e importi senza fatica, risparmiando l’80–90% del tempo di configurazione.
Risultato atteso
Dopo pochi minuti dall’importazione usi la VPN con rotte e DNS corretti.
✅ Controllo: Attiva il profilo e verifica con wg show che esista un handshake recente (latest handshake non vuoto), verifica con ip route che la rotta corrisponda al tunnel completo o split.
Problemi comuni e soluzioni
- Problema: errore in importazione. Causa: formato file errato. Soluzione: verifica che sia un file WireGuard (wg-quick). Se serve, correggi le sezioni.
- Problema: conflitto nome interfaccia. Causa: wg0 esiste già. Soluzione: rinomina interfaccia nel config (wg1) e importa di nuovo.
Verifica del risultato
Checklist
- Profilo WireGuard visibile in NetworkManager e attivabile/disattivabile con un clic.
- Comando wg show indica interfaccia, chiavi e statistiche traffico.
- Rotte corrispondono al setup (ip route mostra rotta via wg0 in tunnel completo o solo reti scelte in split).
- DNS configurati correttamente (resolvectl status mostra i DNS del tunnel in caso di full tunnel).
- Avvio automatico funziona (profilo attivo dopo reboot se autoconnect abilitato).
Come testare
- Verifica con ping la connettività locale: ping -c 3 10.14.0.1 (o indirizzo fornito dal server).
- Controlla la rotta verso l’esterno: ip route get 1.1.1.1 e assicurati che passi per wg0 in tunnel completo.
- Esegui query DNS e verifica quale server risponde: resolvectl status deve mostrare il DNS del tunnel.
- Controlla l’ultimo handshake con wg show: deve essere recente (secondi o minuti) se il tunnel è attivo.
Indicatori di successo
- Ping stabile agli indirizzi VPN senza perdita di pacchetti.
- Handshake rapido e statistiche traffico aggiornate con wg show in attività.
- Nessuna perdita DNS con tunnel completo.
Errori tipici e soluzioni
- Problema: VPN "connessa" ma traffico fermo. Causa: AllowedIPs errati o mancanza rotta di default. Soluzione: per tunnel completo inserisci 0.0.0.0/0, ::/0; per split le subnet corrette. Riavvia profilo.
- Problema: siti lenti o non si aprono. Causa: MTU troppo alto, frammentazione. Soluzione: abbassa MTU a 1420 o 1280 e riprova.
- Problema: perdite DNS. Causa: sistema usa DNS del provider. Soluzione: imposta DNS tunnel e ipv4.ignore-auto-dns yes, poi riattiva profilo.
- Problema: disconnessioni intermittenti. Causa: NAT o firewall. Soluzione: usa PersistentKeepalive=25, apri porte sul client o usa canale stabile.
- Problema: interfaccia wg0 già esiste. Causa: wg-quick e NM attivi insieme. Soluzione: spegni wg-quick con sudo wg-quick down wg0, rimuovi l’avvio automatico e usa solo NM.
- Problema: config non si importa. Causa: errori sintattici nel file. Soluzione: confronta con esempio standard [Interface]/[Peer], correggi spazi, righe vuote o caratteri superflui.
- Problema: nessun accesso LAN con tunnel completo. Causa: tutto il traffico va in VPN. Soluzione: imposta split-tunnel aggiungendo subnet locali in AllowedIPs.
Funzionalità aggiuntive
Impostazioni avanzate
- Più peer: in un profilo NM puoi aggiungere più blocchi peer, utile per server di backup. Con nmcli usa +wireguard-peer.* per ogni aggiunta.
- Marcatura pacchetti e policy routing: per reti complesse puoi applicare ip rule e tabelle routing per far passare solo traffico specifico in VPN. Setup avanzato che richiede attenzione e test.
- Split-DNS: systemd-resolved e NetworkManager permettono di indicare server DNS e domini di ricerca per rotte particolari. Evita perdite e velocizza risoluzioni in reti aziendali.
- Script nm-dispatcher: automatizza azioni su eventi connect/disconnect (es. montare risorse solo con VPN attiva o cambiare regole firewall).
- Alternativa a wg-quick: se preferisci non usare NM, puoi eseguire sudo wg-quick up wg0 con config in /etc/wireguard/wg0.conf. Attento a non mescolare i metodi.
- Chiavi pre-calcolate e PresharedKey: aggiungi una chiave simmetrica addizionale con quella principale per aumentare la sicurezza se supportato dal server.
Ottimizzazione
- Regolazione MTU: prova 1420, se ci sono perdite scendi a 1280. Controlla stabilità pingando più indirizzi.
- Regolazione keepalive: 25 secondi è ideale per NAT. Frequenze minori svegliano canale più spesso, più grandi rischiano disconnessioni.
- Autoconnect migliorato: NM tenta di mantenere attiva la sessione. Per sistemi critici aggiungi un servizio systemd che pinga indirizzi in tunnel e riporta su nmcli up se problemi.
Consiglio: Tieni uno script con comandi nmcli a portata di mano per rapide migrazioni o ripristini del profilo su altre macchine.
FAQ
- Come configurare WireGuard su Ubuntu 24.04 in 5 minuti? Importa un file .conf tramite “Impostazioni” → “Rete” → “VPN” → “Importa da file…”. Controlla DNS e attiva il profilo.
- Guida configurazione WireGuard su Linux Mint senza GUI? Usa nmcli: aggiungi profilo type wireguard, imposta private-key, addresses, peer.public-key, peer.endpoint, peer.allowed-ips, poi attiva con nmcli connection up.
- Come fare split-tunnel? In AllowedIPs metti solo le subnet desiderate. Con nmcli aggiungi ipv4.never-default yes per mantenere la rotta di default esterna.
- Come risolvere perdite DNS? Imposta DNS del tunnel e attiva ipv4.ignore-auto-dns yes, poi riattiva il profilo.
- Come abilitare avvio automatico? Attiva connection.autoconnect yes via nmcli o seleziona "Autoconnect" in GUI e riavvia sistema.
- Perché non c’è traffico pur essendo “connesso”? Controlla AllowedIPs e Endpoint, verifica chiave pubblica server e che il server abbia la tua chiave pubblica.
- Si possono avere due profili WireGuard? Sì, puoi attivarli singolarmente o entrambi se le rotte non confliggono. Gestisci priorità con tabelle rotte e metriche.
- Serve installare plugin WireGuard per NM? No, in Ubuntu 24.04 e Mint recenti è supportato nativamente. Serve solo wireguard-tools per diagnosi e generazione chiavi.
- Come tornare indietro a configurazione precedente? Disattiva e cancella profilo: nmcli connection delete "nome", rimuovi regole UFW, riavvia NM con sudo systemctl restart NetworkManager.
- Dove conservare le chiavi? Nella home con permessi 600 sui file. Non condividere mai la chiave privata.
Conclusione
Hai seguito tutto il percorso, dalla preparazione dell’ambiente fino a una configurazione WireGuard funzionante su Ubuntu 24.04 LTS e Linux Mint. Abbiamo visto due strade: l’import rapido di un file tramite NetworkManager e la configurazione manuale via GUI e nmcli. Hai imparato a gestire rotte (tunnel completo e split-tunnel), DNS senza perdite, avvio automatico e, se serve, a implementare un killswitch base con UFW. Nella parte diagnostica abbiamo raccolto i problemi più comuni e i comandi per risolverli rapidamente e riportare la VPN in funzione.
Cosa fare dopo? Configura più profili per scopi diversi, aggiungi peer di backup in caso di indisponibilità del server principale, ottimizza MTU per la tua rete. Se vuoi un avvio garantito e rapido senza dover montare il server, usa configurazioni pronte da fonti affidabili per dedicare tempo al lavoro vero e non all’infrastruttura di supporto.
Dove approfondire: esplora nm-dispatcher per automatizzare azioni su up/down, studia policy-based routing per instradare in modo dettagliato il traffico delle app, scopri altri protocolli come OpenVPN e IKEv2 per compatibilità multipiattaforma. Con queste basi adatterai facilmente la VPN a ogni esigenza e manterrai solida l’infrastruttura Linux.
Consiglio: Salva questa guida passo passo nei preferiti e esporta il tuo profilo NM in un file. Così, in caso di reinstallazione, ripristinerai la VPN operativa in pochi minuti.