SSD Nodes Learn Hosting plans →
Guide Matt ConnorDi Matt Connor · Aggiornato 2026-10-28

WireGuard o OpenVPN: quale scegliere per il tuo VPS

WireGuard è più veloce, compatto e semplice da verificare. Scopri le 4 situazioni precise in cui OpenVPN resta la scelta migliore per il tuo server.

La risposta breve

WireGuard e OpenVPN, nel caso di una sola persona che gestisce un server VPN sul proprio VPS, non sono alternative alla pari: scegli WireGuard. È più compatto, viene eseguito nel kernel Linux, stabilisce la connessione in una frazione di secondo e una configurazione client funzionante occupa circa dieci righe. OpenVPN mantiene quattro funzioni concrete. Se nessuna di queste ti serve, non hai motivo di usarlo.

Queste quattro funzioni sono uscire da una rete che consente soltanto la porta TCP 443, integrarsi con un'autorità di certificazione esistente, autenticare utenti identificati tramite password o un secondo fattore e creare un bridge a Layer 2. Tutto ciò che segue documenta questa raccomandazione e indica il punto preciso in cui ciascuna eccezione diventa applicabile al tuo caso.

Perché WireGuard è la scelta preferita per chi gestisce server in proprio

Il codice è abbastanza compatto da poter essere letto. Il progetto WireGuard implementa il protocollo in circa 4,000 righe di codice. OpenVPN arriva a sei cifre se si considera la libreria OpenSSL da cui dipende per ogni operazione crittografica. Le dimensioni contano perché ogni riga aumenta la superficie di attacco, e né tu né chi revisiona il codice leggerete 100,000 righe. 4,000 righe, invece, si possono leggere.

Funziona nel kernel. WireGuard fa parte del kernel Linux principale dalla versione 5.6, quindi Ubuntu 24.04 e Debian 13 lo includono senza dover compilare nulla. I pacchetti vengono cifrati nel punto in cui si trovano già, nello spazio del kernel, senza copiarli a un processo nello spazio utente e poi nuovamente nel kernel. Verificalo prima di qualsiasi altra cosa:

sudo modprobe wireguard && echo ok

Su un VPS KVM viene visualizzato ok. Nella virtualizzazione basata su container che condivide il kernel dell'host, come OpenVZ o LXC, il comando fallisce con Operation not supported, perché non puoi caricare un modulo in un kernel che non è tuo.

Non c'è nulla da negoziare. WireGuard usa un'unica suite di cifratura fissa: ChaCha20-Poly1305 per i dati, con chiavi Curve25519. Non esiste una versione a cui eseguire il downgrade e non ci sono opzioni da configurare in modo errato. OpenVPN negozia la cifratura e la versione TLS (transport layer security) con ogni client. Questa è flessibilità, ma è anche il punto in cui si verificano gli errori di configurazione. Un server lasciato con data-ciphers AES-256-GCM:AES-128-CBC passa senza problemi alla cifratura CBC per un client che non offre opzioni migliori, e il log non segnala la cifratura più debole come un problema. Quando è disponibile l'offload del canale dati, OpenVPN stampa una nota che indica che la voce CBC ha disattivato l'offload. Si tratta di un avviso sulle prestazioni, non sulla sicurezza.

La porta non risponde. Un pacchetto WireGuard che non supera il controllo di autenticazione del messaggio viene scartato senza alcuna risposta. Di conseguenza, nmap -sU -p 51820 non può distinguere un server WireGuard da una porta che il firewall scarta senza messaggi: in entrambi i casi restituisce open|filtered. Solo una porta non filtrata senza alcun processo in ascolto si rivela, perché il kernel risponde con un errore ICMP di porta irraggiungibile e nmap la segnala come closed. Un server OpenVPN in modalità TCP completa l'handshake TCP prima di decidere che la connessione non è autorizzata. Questo è sufficiente a dimostrare a uno scanner che sulla porta è presente un servizio. OpenVPN su UDP con tls-crypt è quasi altrettanto discreto. Si tratta quindi di un argomento contro l'esecuzione di OpenVPN su TCP, non contro OpenVPN in sé.

Il roaming è automatico. Un peer WireGuard viene identificato dalla sua chiave pubblica, non dal suo indirizzo. Il laptop passa dalla rete domestica a un hotspot mobile, invia un handshake dal nuovo indirizzo e il server aggiorna l'endpoint a cui invia le risposte. Nulla si riconnette, perché non c'era mai una connessione persistente. OpenVPN può ottenere un comportamento simile con float, ma normalmente il client chiude e ricrea una sessione TLS completa. Per questo, quando si riapre il coperchio, la pausa è percepibile con OpenVPN ma non con WireGuard.

Velocità nel 2026: il divario si riduce solo con l'offload nel kernel

Per anni, l'argomento sulla velocità era semplice: OpenVPN copiava ogni pacchetto nello userspace, lo cifrava e lo ricopiava indietro, mentre WireGuard restava sempre nel kernel. Su un server Ubuntu 24.04 standard il quadro è ancora questo e WireGuard è molto più veloce. Nel 2026 è cambiato il fatto che OpenVPN può ora spostare nel kernel anche il proprio percorso dati, quando sia il kernel sia la versione di OpenVPN lo supportano. Un confronto che ignora questa possibilità non è aggiornato.

OpenVPN 2.7 è stato rilasciato a febbraio 2026 con il supporto per il modulo kernel ovpn upstream, integrato in Linux 6.16. Si tratta del DCO (data channel offload): il canale di controllo resta nello userspace, mentre il percorso dei dati passa nel kernel, in modo analogo a quanto WireGuard fa da sempre. Con un kernel e una versione di OpenVPN abbastanza recenti da utilizzarlo, il throughput appartiene alla stessa categoria, invece di essere nettamente inferiore. Verifica ciò che hai effettivamente installato:

uname -r
openvpn --version | head -n 1
modinfo ovpn 2>/dev/null | head -n 3

A ottobre 2026 un Ubuntu 24.04 LTS standard include OpenVPN 2.6, non 2.7, e il modulo ovpn richiede la versione 2.7. Su questa release puoi usare l'offload solo tramite il pacchetto openvpn-dco-dkms precedente, che compila un modulo out-of-tree per il kernel in esecuzione e quindi deve essere ricompilato a ogni aggiornamento del kernel. È un componente variabile che WireGuard non richiede. Ubuntu 26.04 LTS include OpenVPN 2.7.0 e un kernel Linux 7.0, entrambi abbastanza recenti per ovpn. Su questa release, quindi, la riga modinfo precedente è quella da verificare.

Leggi attentamente le limitazioni del DCO prima di considerarlo un motivo per continuare a usare OpenVPN. Supporta solo tunnel Layer 3, accetta esclusivamente cifrari AEAD (authenticated encryption with associated data: AES-GCM o ChaCha20-Poly1305), non supporta la compressione e, su un server, funziona solo con topology subnet. Ognuna di queste limitazioni elimina una parte della flessibilità che in origine costituiva il principale argomento a favore di OpenVPN. Un OpenVPN veloce è un OpenVPN configurato in modo simile a WireGuard.

Non fidarti dei valori di throughput pubblicati da altri, compresi quelli di questa pagina. Su una VPS il limite massimo dipende di solito dalla quota CPU o dalla quota di rete, non dal protocollo. Misura le prestazioni con iperf3 in esecuzione attraverso il tunnel, poi ripeti la misurazione al di fuori del tunnel e confronta i due risultati.

Dove OpenVPN mantiene la propria utilità

È necessario uscire tramite la porta TCP 443. WireGuard usa solo UDP, per scelta progettuale, e non è previsto alcuna modalità TCP. Una rete alberghiera che filtra soltanto in base al numero di porta di solito consente il passaggio di OpenVPN configurato con proto tcp-server e port 443. Non va però considerato un meccanismo di dissimulazione: OpenVPN su TCP usa un proprio framing dei pacchetti anziché una normale sessione TLS, quindi un firewall aziendale o un proxy che ispeziona o termina HTTPS può comunque riconoscerlo e bloccarlo. Per attraversare la stessa rete, WireGuard richiede un wrapper come wstunnel o udp2raw, cioè un processo aggiuntivo da eseguire e mantenere aggiornato. Va considerato anche il conflitto: se un web server usa già TCP 443 su quell'indirizzo IP, uno dei due servizi deve essere spostato.

Gestisci già una certificate authority. OpenVPN esegue l'autenticazione tramite certificati X.509, quindi si integra in una PKI (public key infrastructure) già operativa. I certificati scadono automaticamente e puoi revocarne uno aggiungendolo a una certificate revocation list che il server legge tramite crl-verify. WireGuard non usa certificati, scadenze o certificate revocation list. Per rimuovere un peer devi modificare la configurazione del server e ricaricarla. Con dieci peer è una procedura gestibile. Con quattrocento peer e un requisito di audit, il modello basato sui certificati offre un vantaggio concreto.

Ti servono utenti identificati, non soltanto chiavi. OpenVPN può delegare l'autenticazione a un sistema esterno tramite auth-user-pass-verify o un plugin come openvpn-plugin-auth-pam.so. Questo consente di aggiungere LDAP o un secondo fattore basato su password monouso. WireGuard non prevede alcun concetto di utente. Una chiave è presente nella configurazione oppure non lo è. Se il requisito è "Sara deve inserire un codice dal telefono", WireGuard non può gestirlo autonomamente.

Ti serve il Layer 2 oppure un client per sistemi obsoleti. OpenVPN con dev tap crea un bridge per i frame Ethernet. Questo è utile per i protocolli broadcast e per i vecchi giochi LAN. WireGuard opera soltanto al Layer 3 e continuerà a farlo. OpenVPN dispone inoltre di client per hardware e sistemi operativi sui quali non sarà mai disponibile un'applicazione WireGuard. Entrambi sono motivi sempre meno frequenti e dev tap è incompatibile con DCO. Quando usi il bridge devi quindi adottare il percorso più lento.

Quanto costano realmente le due configurazioni

Un’identità WireGuard richiede un solo comando. Le parentesi sono importanti perché impostano i permessi del file prima che la chiave venga creata:

(umask 077; wg genkey > private.key)
wg pubkey < private.key > public.key

L’equivalente in OpenVPN è una certificate authority che resta sotto la tua responsabilità per tutto il ciclo di vita della VPN:

sudo apt install -y easy-rsa
make-cadir ~/openvpn-ca
cd ~/openvpn-ca
./easyrsa init-pki
./easyrsa build-ca
./easyrsa gen-req server nopass
./easyrsa sign-req server server

Nessuno dei due elenchi è fuorviante. La CA offre scadenza e revoca, ma richiede una chiave privata da proteggere per anni, un rinnovo da ricordare e una ricostruzione completa se la perdi. Se non utilizzi questi vantaggi, sostieni costi senza ottenere benefici. La procedura completa per WireGuard, inclusi il forwarding, il NAT (network address translation) e gli errori di handshake che possono farti perdere un pomeriggio, è disponibile nella guida per eseguire il self-hosting di una VPN WireGuard sul tuo VPS.

Cosa richiede ciascuno al firewall

WireGuard richiede una sola regola in ingresso, per UDP sulla porta indicata in ListenPort:

sudo ufw allow 51820/udp
sudo ufw status verbose

OpenVPN richiede UDP 1194 per impostazione predefinita oppure TCP 443, se hai scelto questa configurazione. In entrambi i casi devi abilitare l'inoltro IP e configurare una regola di NAT sull'origine, perché Linux scarta i pacchetti che non sono indirizzati al server. Questa parte è identica per i due protocolli ed è all'origine della maggior parte delle segnalazioni del tipo «il tunnel si connette, ma Internet non funziona». Se non conosci ufw, inizia da le nozioni di base del firewall ufw su un VPS e ricorda che la maggior parte dei provider gestisce un secondo firewall di rete nel pannello di controllo: una regola aggiunta sul server non ha effetto se il pacchetto non raggiunge mai il server. Capire che cos'è una porta e come Linux resta in ascolto su una porta rende più rapide entrambe le verifiche.

Come scegliere, in un solo paragrafo

Usa WireGuard, a meno che tu non sappia indicare il requisito specifico che non è in grado di soddisfare. Se ti serve TCP 443 per aggirare una rete con restrizioni, usa OpenVPN su quella porta e valuta di eseguire entrambi: usano porte diverse e possono coesistere sullo stesso server senza conflitti. Se ti servono account per utente o un secondo fattore di autenticazione, non cercare di forzare WireGuard a gestirli. Aggiungi invece un livello di identità sopra WireGuard. Un server di controllo Headscale self-hosted usa WireGuard come livello sottostante e aggiunge il modello degli account, la distribuzione delle chiavi e l'approvazione dei dispositivi, che WireGuard senza componenti aggiuntivi lascia a tuo carico.

Migrazione da OpenVPN senza interruzioni

Non esiste una conversione. La PKI di OpenVPN non diventa un insieme di chiavi WireGuard, perché WireGuard non usa certificati da convertire. Ogni client riceve una nuova coppia di chiavi, generata nello stesso modo di quella del server.

Eseguire la migrazione in parallelo invece di effettuare un passaggio immediato. WireGuard sulla porta UDP 51820 e OpenVPN sulla porta 1194 possono essere eseguiti contemporaneamente sullo stesso host. Avviare wg0, verificarlo con sudo wg show elencando un latest handshake recente, quindi spostare i client uno alla volta. Quando l'elenco dei peer OpenVPN non cambia più, arrestare il servizio con sudo systemctl disable --now openvpn-server@server. Conservare i file della CA finché non si è certi che non servano più, perché non è possibile ricreare un client revocato usando una CA eliminata.

Un elemento non viene trasferito: gli account basati su nome utente e password e lo storico delle revoche associato. Stabilire dove conservarli prima di disattivare il vecchio server, non dopo.

FAQ

WireGuard è più veloce di OpenVPN?

Su un server Ubuntu 24.04 con configurazione standard, sì, e con un ampio margine, perché WireGuard cifra i dati nel kernel, mentre OpenVPN 2.6 trasferisce ogni pacchetto attraverso un processo in userspace. Con OpenVPN 2.7 e il modulo del kernel ovpn di Linux 6.16, anche il percorso dei dati è nel kernel e i due software appartengono alla stessa categoria. Misura le prestazioni della tua configurazione con iperf3 attraverso il tunnel, invece di fidarti di un valore riportato in un blog, perché su un VPS il limite è solitamente la CPU o la larghezza di banda disponibile.

WireGuard può funzionare sulla porta TCP 443?

Non autonomamente. WireGuard usa esclusivamente UDP per progettazione e non è prevista una modalità TCP. Per attraversare una rete che consente soltanto TCP 443, devi inserirlo in un tunnel come wstunnel o udp2raw, aggiungendo un processo da eseguire e aggiornare su entrambe le estremità. Se questa limitazione è comune nel tuo ambiente di lavoro, OpenVPN con proto tcp-server e port 443 è la soluzione più semplice su una rete che filtra soltanto in base alla porta, anche se un proxy che ispeziona HTTPS può comunque individuarlo e bloccarlo.

OpenVPN è ormai insicuro?

No. Una versione aggiornata di OpenVPN con un cifrario AEAD come AES-256-GCM e tls-crypt abilitato è una soluzione VPN affidabile. Il vantaggio di WireGuard dipende da un altro fattore: OpenVPN include molto più codice e molte più opzioni, quindi offre a un amministratore stanco molti più modi per configurarlo in modo errato. Meno scelte significano meno configurazioni sbagliate.

Quale soluzione dovrei scegliere per una VPN personale su un VPS?

WireGuard. Una coppia di chiavi per dispositivo, un file di configurazione di circa dieci righe, una porta UDP aperta e un handshake che termina prima che tu ti accorga che è iniziato. Scegli OpenVPN solo se ti connetti regolarmente da reti che bloccano UDP oppure se devi integrarti con un'autorità di certificazione o una directory utenti già esistente.

Questo articolo ti è stato utile?