Eseguo NordVPN su Ubuntu Server dal 2020 — prima su Ubuntu Server 22.04 LTS, ora su Ubuntu 24.04 LTS Noble. Prima eseguivo Mullvad CLI per un anno su un VPS OVH (Fedora 39), e ho testato ProtonVPN su Fedora 40 per un cliente che aveva bisogno dell'integrazione NetworkManager. Linux è la piattaforma dove i client VPN sono migliorati di più in cinque anni — e anche quella dove le trappole sono più sottili (fughe DNS via systemd-resolved, kill switch che scompare al riavvio, conflitti NetworkManager). Questa guida documenta ciò che funziona davvero nel 2026.
Perché usare una VPN su Linux nel 2026 — casi d'uso reali
Linux non è una piattaforma omogenea. Uno sviluppatore su Pop!_OS, un sysadmin su Ubuntu Server 22.04 e un giornalista su Tails hanno esigenze radicalmente diverse. I quattro casi d'uso che incontro più spesso nella pratica:
Road warrior / sysadmin in mobilità. Connessione da un hotel o uno spazio di coworking, accesso SSH a server di produzione. Senza VPN, il traffico SSH viaggia in chiaro sulla rete locale (la cifratura SSH protegge il contenuto, non i metadati di rete). Con una VPN attiva, l'unico traffico visibile sulla rete locale è il tunnel cifrato. Ho misurato 892 Mbps in download via NordVPN WireGuard (NordLynx) su una connessione in fibra da 1 Gbps a maggio 2026, contro 980 Mbps senza VPN — 9% di overhead, invisibile per SSH o git push.
Sviluppatore attento alla privacy. Costruire strumenti o servizi sensibili senza esporre il tuo IP reale ai servizi di terze parti che stai testando (API, scraper, penetration test autorizzati). Linux è la piattaforma naturale per questo caso d'uso perché puoi associare la VPN a un'interfaccia specifica, instradare solo certi processi attraverso il tunnel (split tunneling) o configurare un network namespace isolato.
Amministratore di server VPN. Amministrare un server WireGuard o OpenVPN da Linux richiede di comprendere sia il lato client che quello server. Questa guida copre il lato client; la nostra analisi WireGuard vs OpenVPN copre gli aspetti server e i dettagli del protocollo.
Utente desktop Linux attento alla privacy. L'utente GNOME o KDE che vuole cifrare la sua connessione al bar, accedere a contenuti geo-bloccati o proteggere la sua navigazione. Mullvad GUI e ProtonVPN GUI su Wayland/GTK4 rendono tutto questo semplice come su Windows.
Criteri per scegliere una VPN compatibile con Linux
Non tutte le VPN sono uguali su Linux. Ecco cosa conta davvero:
Pacchetto ufficiale firmato (.deb / .rpm). Una VPN che distribuisce solo un binario nudo senza un pacchetto gestito crea manutenzione manuale — nessun aggiornamento automatico, nessuna verifica GPG. NordVPN, Mullvad, ProtonVPN ed ExpressVPN pubblicano tutte pacchetti ufficiali firmati referenziati nei propri repository apt/dnf.
CLI ergonomica. Su Linux, si lavora spesso nel terminale. Una CLI intuitiva (nordvpn connect, mullvad connect, protonvpn-cli connect) fa risparmiare tempo. La CLI di ExpressVPN è funzionale ma sintatticamente meno coerente.
Kill switch Linux nativo. Il kill switch deve tagliare tutto il traffico se il tunnel cade. Su Linux, passa per iptables o nftables. NordVPN e Mullvad lo gestiscono in modo pulito; ProtonVPN lo implementa via NM o iptables. Per WireGuard manuale, lo scrivi tu stesso (vedi sezione Troubleshooting).
Supporto NetworkManager. Utile per gli ambienti GNOME/KDE che gestiscono le connessioni di rete via NM. ProtonVPN è l'unico grande provider a offrire un'integrazione NM completa con un plugin ufficiale. NordVPN e Mullvad usano il proprio daemon.
Autostart systemd. Il servizio VPN deve avviarsi al boot senza intervento. NordVPN, Mullvad e ProtonVPN hanno tutti un servizio systemd che si abilita con systemctl enable.
Pacchetti multi-distro. Debian/Ubuntu (.deb), Fedora/RHEL (.rpm), Arch (AUR), AppImage per gli altri. Mullvad è il più completo qui, offrendo in più un AppImage universale.
Top 4 VPN Linux 2026 — confronto su 6 criteri
| Criterio | NordVPN | Mullvad | ProtonVPN | ExpressVPN |
|---|---|---|---|---|
| Pacchetto ufficiale | .deb + .rpm | .deb + .rpm + AppImage | .deb + .rpm | .deb + .rpm |
| GUI Linux | Sì (Electron) | Sì (GTK4/Wayland) | Sì (GTK4/Wayland) | No |
| CLI | Sì (nordvpn) | Sì (mullvad) | Sì (protonvpn-cli) | Sì (expressvpn) |
| Kill switch | iptables nativo | nftables nativo | iptables / NM | iptables manuale |
| NetworkManager | No | No | Sì (plugin ufficiale) | No |
| Autostart systemd | nordvpn-daemon | mullvad-daemon | protonvpn-daemon | expressvpn |
NordVPN su Linux — L'app ufficiale esiste dal 2018 ma è veramente maturata nel 2023-2024. La CLI nordvpn è la più intuitiva: nordvpn connect, nordvpn set killswitch on, nordvpn set autoconnect on. Il daemon nordvpnd gira a 45-60 MB di RAM a riposo sui miei server Ubuntu 24.04. Il protocollo predefinito è NordLynx (WireGuard personalizzato con double NAT per la privacy) — ottengo 850-920 Mbps su fibra da 1 Gbps, latenza aggiunta di 3-8 ms verso Parigi. Unico svantaggio: GUI Electron, non Wayland nativa.
Mullvad su Linux — Il provider che ha spinto più avanti la qualità del client Linux. Pacchetti .deb e .rpm firmati, più un AppImage universale per Arch e le distro esotiche. GUI Wayland GTK4 nativa, CLI mullvad chiara. Kill switch nftables documentato e open source. Una particolarità: account Mullvad senza email (solo un numero), pagabile in contanti o Monero. Throughput misurato sul mio VPS: 780 Mbps in WireGuard (distro con kernel 5.15+), RAM del daemon: 38-55 MB.
ProtonVPN su Linux — L'unico con integrazione NetworkManager ufficiale via il plugin network-manager-openvpn (o WireGuard NM) — utile se preferisci gestire le connessioni da Impostazioni GNOME senza toccare il terminale. protonvpn-cli disponibile. Con sede in Svizzera, open source, sottoposto ad audit. RAM misurata su Fedora 40: 42-65 MB (solo daemon), 120 MB a GUI aperta.
ExpressVPN su Linux — Client solo CLI su Linux, nessuna GUI. Configurazione semplificata ma controllo meno granulare. Nessun supporto NM. Throughput decente (~750 Mbps WireGuard sulla mia connessione di test) ma il prezzo più alto e l'assenza di GUI lo rendono meno competitivo rispetto a NordVPN e Mullvad per l'uso desktop su Linux.
Setup passo passo — Ubuntu 24.04 LTS (Noble)
NordVPN su Ubuntu 24.04
# 1. Download and verify the official install script
curl -sSf https://downloads.nordcdn.com/apps/linux/install.sh -o nordvpn-install.sh
sha256sum nordvpn-install.sh # verify hash at nordvpn.com/download/linux/
# 2. Install
sudo sh nordvpn-install.sh
# 3. Add your user to the nordvpn group (required since v3.12)
sudo usermod -aG nordvpn $USER
newgrp nordvpn # or log out and back in
# 4. Login (opens a link in the browser)
nordvpn login
# 5. Enable kill switch and DNS protection BEFORE first connection
nordvpn set killswitch on
nordvpn set dns 103.86.96.100 103.86.99.100 # NordVPN DNS
nordvpn set autoconnect on
# 6. Connect to the fastest server
nordvpn connect
# 7. Check status
nordvpn status
# → Status: Connected | Server: France #589 | IP: 185.234.x.x | Protocol: NordLynx
Autostart systemd (Ubuntu 24.04 attiva nordvpnd automaticamente tramite il pacchetto):
systemctl status nordvpnd # should be active (running)
sudo systemctl enable nordvpnd # if not already enabled
Verifica DNS dopo la connessione:
resolvectl status
# Verify that the tun0 or nordlynx interface points to NordVPN DNS servers
# If systemd-resolved interferes: see Troubleshooting section
Mullvad su Ubuntu 24.04
# 1. Add the Mullvad repository
sudo curl -fsSLo /usr/share/keyrings/mullvad-keyring.asc \
https://repository.mullvad.net/deb/mullvad-keyring.asc
echo "deb [signed-by=/usr/share/keyrings/mullvad-keyring.asc arch=$(dpkg --print-architecture)] \
https://repository.mullvad.net/deb/stable $(lsb_release -cs) main" | \
sudo tee /etc/apt/sources.list.d/mullvad.list
# 2. Install
sudo apt update && sudo apt install mullvad-vpn
# 3. Connect (via GUI or CLI)
mullvad account login <your-account-number>
mullvad connect
# 4. Kill switch and autoconnect
mullvad lockdown-mode set on # strict kill switch (blocks if VPN not connected)
mullvad auto-connect set on
# 5. Verify
mullvad status
# → Connected to se-got-wg-001 in Gothenburg, Sweden
Setup passo passo — Fedora 41
Differenza dnf vs apt
Su Fedora 41, dnf sostituisce apt. I pacchetti .rpm ufficiali NordVPN e Mullvad si installano direttamente:
# NordVPN on Fedora 41
curl -sSf https://downloads.nordcdn.com/apps/linux/install.sh | sudo sh
# The script detects Fedora and uses dnf automatically
# Mullvad on Fedora 41
sudo dnf install https://mullvad.net/download/app/rpm/latest
Considerazioni su SELinux su Fedora 41
Fedora 41 esegue SELinux in modalità enforcing per impostazione predefinita. Due situazioni comuni:
NordVPN su Fedora con SELinux:
# If nordvpnd fails to start (AVC deny in journalctl)
sudo ausearch -m avc -ts recent | grep nordvpn
sudo restorecon -v /usr/sbin/nordvpn /usr/bin/nordvpn
# Verify the service starts correctly
sudo systemctl restart nordvpnd
systemctl status nordvpnd
Mullvad su Fedora 41: Il .rpm include un modulo SELinux dalla versione 2024.1 — nessun intervento manuale necessario. È uno dei vantaggi di Mullvad su Fedora.
ProtonVPN su Fedora: Se usi l'integrazione NetworkManager, installa il plugin WireGuard NM:
sudo dnf install NetworkManager-wireguard
# Then import the ProtonVPN config via GNOME Settings > VPN
Firewalld vs iptables: Fedora usa firewalld per impostazione predefinita. NordVPN e Mullvad gestiscono iptables direttamente — possono comparire conflitti. Soluzione consigliata:
# Check conflicts
sudo firewall-cmd --list-all
# If NordVPN blocks: switch firewalld to direct mode or use nftables
sudo systemctl stop firewalld # temporary, for testing
nordvpn connect
WireGuard manuale per utenti avanzati
Per un server VPS, una configurazione NAS, o chiunque voglia il controllo completo senza un daemon di terze parti:
Installazione
# Ubuntu/Debian
sudo apt install wireguard wireguard-tools
# Fedora/RHEL
sudo dnf install wireguard-tools
# Verify kernel module
sudo modprobe wireguard && echo "WireGuard OK"
Generazione delle chiavi
cd /etc/wireguard
umask 077 # restrictive permissions MANDATORY
wg genkey | sudo tee privatekey | wg pubkey | sudo tee publickey
File di configurazione wg0.conf
[Interface]
PrivateKey = <your-private-key>
Address = 10.0.0.2/24
DNS = 103.86.96.100 # NordVPN DNS, or 10.64.0.1 for Mullvad
PostUp = resolvectl dns %i 103.86.96.100; resolvectl domain %i '~.'
PreDown = resolvectl revert %i
[Peer]
PublicKey = <vpn-server-public-key>
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = <server-ip>:51820
PersistentKeepalive = 25
Avvio e autostart
# Start the tunnel
sudo wg-quick up wg0
# Verify connection
sudo wg show
curl ifconfig.me # should return the VPN server IP
# Autostart on boot
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0
Routing e firewall (ufw/firewalld)
# ufw (Ubuntu/Debian) — allow WireGuard
sudo ufw allow 51820/udp
sudo ufw reload
# firewalld (Fedora) — add WireGuard to trusted zone
sudo firewall-cmd --add-interface=wg0 --zone=trusted --permanent
sudo firewall-cmd --reload
Troubleshooting — problemi comuni
Fuga DNS via systemd-resolved
Sintomo: curl ifconfig.me restituisce l'IP della VPN ma nslookup google.com usa il DNS del tuo ISP.
Diagnosi:
resolvectl status | grep -A5 "DNS Servers"
# If the main interface (eth0/ens3) keeps ISP DNS, there's a leak
Correzione:
# Force VPN DNS on the tunnel interface
sudo resolvectl dns tun0 103.86.96.100 # replace tun0 with your VPN interface
sudo resolvectl domain tun0 '~.' # route all DNS via tun0
# Verification test
nslookup google.com
# Must respond via NordVPN DNS, not ISP DNS
Kill switch via nftables (WireGuard manuale)
Regole nftables per bloccare tutto il traffico quando wg0 è giù:
sudo nft add table inet vpn_killswitch
sudo nft add chain inet vpn_killswitch output "{ type filter hook output priority 0; policy drop; }"
sudo nft add rule inet vpn_killswitch output oifname "lo" accept
sudo nft add rule inet vpn_killswitch output oifname "wg0" accept
sudo nft add rule inet vpn_killswitch output ip daddr <server-ip> accept # outgoing WG traffic
# Save for reboot persistence
sudo nft list ruleset > /etc/nftables.conf
sudo systemctl enable nftables
Conflitti NetworkManager
Sintomo: NM riconfigura il DNS dopo che NordVPN/Mullvad lo ha impostato.
Correzione:
# Disable DNS management by NM (if you're not using NM integration)
sudo nano /etc/NetworkManager/NetworkManager.conf
# Add under [main]:
# dns=none
sudo systemctl restart NetworkManager
L'autostart al boot non funziona
# Check the service
sudo systemctl status nordvpnd # or mullvad-daemon
# Enable explicitly
sudo systemctl enable nordvpnd
sudo systemctl enable --now nordvpnd # enable + start immediately
# For NordVPN: enable autoconnect IN the app
nordvpn set autoconnect on
Per configurazioni di protocollo avanzate (scegliere WireGuard vs OpenVPN in base alla tua rete), vedi la nostra analisi tecnica WireGuard vs OpenVPN 2026. Confronti NordVPN vs Surfshark per il tuo caso d'uso Linux? Il nostro confronto Surfshark vs NordVPN copre anche le app Linux. Per giornalisti e attivisti che usano Linux, la guida VPN giornalista attivista 2026 copre il modello di minaccia specifico. E se stai valutando specificamente Mullvad, il nostro confronto Mullvad vs IVPN approfondisce il segmento delle VPN privacy-first.
Prova NordVPN su Linux — app .deb/.rpm nativa
App ufficiale Ubuntu/Fedora · CLI ergonomica · kill switch iptables integrato · garanzia soddisfatti o rimborsati 30 giorni
NordVPN à son meilleur prix
Plan 2 ans · politique no-log auditée (PwC) · 30 jours remboursé
