WireGuard of OpenVPN: wat kiest u voor self-hosting?
WireGuard is sneller, eenvoudiger te configureren en heeft een kleiner auditoppervlak. Lees wanneer OpenVPN toch beter past: TCP 443, CA, MFA of Layer 2.
Het korte antwoord
WireGuard versus OpenVPN is geen moeilijke keuze voor één persoon die een VPN-server op een eigen VPS beheert: kies WireGuard. WireGuard is kleiner, draait in de Linux-kernel, maakt binnen een fractie van een seconde verbinding en een werkende clientconfiguratie bevat ongeveer tien regels. OpenVPN heeft nog vier specifieke functies. Als geen daarvan op uw situatie van toepassing is, hebt u OpenVPN niet nodig.
Die vier functies zijn verbinding maken vanuit een netwerk dat alleen TCP-poort 443 toestaat, aansluiten op een bestaande certificaatautoriteit, benoemde gebruikers met een wachtwoord of een tweede factor authenticeren en overbrugging op Layer 2 bieden. Hieronder vindt u de onderbouwing van deze aanbeveling en het exacte punt waarop elke uitzondering op uw situatie van toepassing wordt.
Waarom WireGuard de voorkeur kreeg van self-hosters
De codebase is klein genoeg om te lezen. Het WireGuard-project heeft een protocolimplementatie van ongeveer 4.000 regels code. OpenVPN komt uit op zes cijfers zodra u de OpenSSL-bibliotheek meetelt waarop het voor elke cryptografische bewerking steunt. Omvang is belangrijk, omdat elke regel een aanvalsoppervlak vormt. U of uw reviewer gaat geen 100.000 regels lezen. 4.000 regels kunt u wel lezen.
Het draait in de kernel. WireGuard maakt sinds 5.6 deel uit van de mainline Linux-kernel. Ubuntu 24.04 en Debian 13 leveren het daarom zonder dat u iets hoeft te compileren. Pakketten worden versleuteld waar ze zich al bevinden, in kernelruimte. Ze worden niet naar een userspace-proces en terug gekopieerd. Controleer dit voordat u iets anders doet:
sudo modprobe wireguard && echo okOp een KVM VPS geeft dit ok. Bij containervirtualisatie die de kernel van de host deelt, zoals OpenVZ of LXC, mislukt dit met Operation not supported. U kunt geen module laden in een kernel die niet van u is.
Er valt niets te onderhandelen. WireGuard heeft één vaste cipher suite: ChaCha20-Poly1305 voor gegevens, met Curve25519-sleutels. Er is geen versie die kan worden gedowngraded en geen optie die verkeerd kan worden ingesteld. OpenVPN onderhandelt met elke client over het cipher en de TLS-versie (transport layer security). Dat biedt flexibiliteit, maar is ook een bron van configuratiefouten. Een server met data-ciphers AES-256-GCM:AES-128-CBC valt zonder problemen terug op het CBC-cipher voor een client die niets beters aanbiedt. Niets in het log markeert dat als een probleem.
De poort antwoordt niet. Een WireGuard-pakket waarvan de controle van de berichtauthenticatie mislukt, wordt zonder enig antwoord verwijderd. Daarom retourneert nmap -sU -p 51820 open|filtered, ongeacht of er iets luistert. Een OpenVPN-server in TCP-modus voltooit de TCP-handshake voordat hij beslist dat de verbinding niet wordt toegelaten. Dat is voldoende om een scanner te laten zien dat er iets aanwezig is. OpenVPN via UDP met tls-crypt is bijna even stil. Dit is daarom een argument tegen het uitvoeren van OpenVPN via TCP, niet tegen OpenVPN zelf.
Roaming is inbegrepen. Een WireGuard-peer wordt geïdentificeerd aan de hand van zijn publieke sleutel, niet aan de hand van zijn adres. Uw laptop verplaatst zich van uw thuisnetwerk naar een mobiele hotspot en verzendt één handshake vanaf het nieuwe adres. De server werkt vervolgens het endpoint bij waarnaar hij antwoordt. Er wordt niets opnieuw verbonden, omdat er nooit een permanente verbinding was. OpenVPN kan met float iets vergelijkbaars doen. De client verbreekt normaal gesproken echter de volledige TLS-sessie en bouwt die opnieuw op. Daarom is de onderbreking na het openen van het deksel bij OpenVPN merkbaar en bij WireGuard niet.
Snelheid in 2026: het verschil is kleiner geworden
Jarenlang was het eerlijke snelheidsargument dat OpenVPN elk pakket naar userspace kopieerde, het daar versleutelde en het vervolgens terug kopieerde, terwijl WireGuard de kernel nooit verliet. Dat is niet langer het volledige beeld. Een vergelijking die dit negeert, is verouderd.
OpenVPN 2.7 is in februari 2026 uitgebracht met ondersteuning voor de upstream ovpn kernelmodule, die is opgenomen in Linux 6.16. Dit is DCO (data channel offload): het besturingskanaal blijft in userspace, terwijl het bulkdatapad naar de kernel wordt verplaatst. Dat is ongeveer wat WireGuard altijd al deed. Op een kernel en een OpenVPN-versie die nieuw genoeg zijn om dit te gebruiken, ligt de doorvoer in dezelfde klasse en niet in een andere. Controleer wat u daadwerkelijk hebt:
uname -r
openvpn --version | head -n 1
modinfo ovpn 2>/dev/null | head -n 3In juli 2026 levert een standaardinstallatie van Ubuntu 24.04 LTS OpenVPN 2.6 en niet 2.7. De ovpn-module vereist 2.7. Op die release krijgt u offload alleen via het oudere pakket openvpn-dco-dkms. Dat pakket bouwt een externe module tegen uw actieve kernel en bouwt deze daarom opnieuw op bij elke kernelupgrade. Dat is een extra bewegend onderdeel dat WireGuard niet heeft.
Lees de beperkingen van DCO voordat u dit als reden ziet om OpenVPN te blijven gebruiken. Het ondersteunt alleen Layer 3-tunnels. Het accepteert alleen AEAD-ciphers (authenticated encryption with associated data: AES-GCM of ChaCha20-Poly1305). Het ondersteunt geen compressie. Op een server werkt het bovendien alleen met topology subnet. Elk van deze beperkingen vermindert een deel van de flexibiliteit die oorspronkelijk juist een argument voor OpenVPN was. Een snelle OpenVPN-configuratie is een OpenVPN-configuratie die op WireGuard lijkt.
Vertrouw geen doorvoercijfer dat iemand publiceert, ook dit getal niet. Op een VPS wordt de bovengrens meestal bepaald door de CPU- of netwerktoewijzing en niet door het protocol. Meet uw eigen doorvoer met iperf3 terwijl dit over de tunnel wordt uitgevoerd. Meet deze daarna opnieuw buiten de tunnel en vergelijk de twee metingen.
Waar OpenVPN nog steeds zijn waarde bewijst
U moet via TCP-poort 443 naar buiten kunnen. WireGuard werkt uitsluitend met UDP, bewust, en er komt geen TCP-modus. Een hotelnetwerk of bedrijfsproxy die alleen TCP 443 toestaat, laat OpenVPN door wanneer dit is geconfigureerd met proto tcp-server en port 443, omdat dat verkeer eruitziet als een gewone TLS-sessie. WireGuard heeft een wrapper zoals wstunnel of udp2raw nodig om hetzelfde netwerk te doorkruisen. Dat betekent dat u nog een proces moet uitvoeren en up-to-date moet houden. Houd rekening met het conflict: als een webserver op dat IP-adres al TCP 443 gebruikt, moet een van beide naar een andere poort worden verplaatst.
U gebruikt al een certificeringsinstantie. OpenVPN gebruikt X.509-certificaten voor authenticatie en past daardoor in een PKI (public key infrastructure) die u al beheert. Certificaten verlopen automatisch. U trekt een certificaat in door het toe te voegen aan een certificaatintrekkingslijst die de server via crl-verify leest. WireGuard heeft geen certificaten, geen vervaldatum en geen certificaatintrekkingslijst. Als u een peer verwijdert, moet u de serverconfiguratie aanpassen en opnieuw laden. Bij tien peers is dat geen probleem. Bij vierhonderd peers, met een auditvereiste, biedt het certificaatmodel u concrete voordelen.
U hebt benoemde gebruikers nodig, niet alleen sleutels. OpenVPN kan de authenticatie uitbesteden aan een extern systeem met auth-user-pass-verify of aan een plugin zoals openvpn-plugin-auth-pam.so. Zo kunt u LDAP of een tweede factor met een eenmalig wachtwoord toevoegen. WireGuard kent helemaal geen gebruikersconcept. Een sleutel staat in de configuratie of niet. Als uw vereiste is dat "Sara een code van haar telefoon moet invoeren", kan WireGuard dat niet zelfstandig uitvoeren.
U hebt Layer 2 nodig, of een client voor iets verouderds. OpenVPN met dev tap overbrugt Ethernet-frames. Dat is relevant voor broadcastprotocollen en oude LAN-games. WireGuard werkt uitsluitend op Layer 3 en dat zal zo blijven. OpenVPN heeft ook clients voor hardware en besturingssystemen waarop nooit een WireGuard-app beschikbaar zal komen. Beide redenen worden minder belangrijk. Bovendien is dev tap incompatibel met DCO. Als u de bridge gebruikt, kiest u dus voor het tragere pad.
Wat de twee configuraties u daadwerkelijk kosten
Een WireGuard-identiteit bestaat uit één opdracht. De haakjes zijn belangrijk, omdat daarmee de bestandsmodus wordt ingesteld voordat de sleutel wordt aangemaakt:
(umask 077; wg genkey > private.key)
wg pubkey < private.key > public.keyHet OpenVPN-equivalent is een certificaatautoriteit die u bezit zolang de VPN bestaat:
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 serverGeen van beide lijsten is onredelijk. De CA biedt vervaldatums en intrekking. Daar staat tegenover dat u een privésleutel jarenlang moet beveiligen, een vernieuwing moet onthouden en alles opnieuw moet opbouwen als u de sleutel verliest. Als u niet gebruikt wat de CA biedt, betaalt u er niets voor terug. De volledige WireGuard-procedure, inclusief forwarding, NAT (network address translation) en handshakefouten die u een middag kosten, staat in de handleiding voor het zelf hosten van een WireGuard-VPN op uw VPS.
Wat elke optie van uw firewall vraagt
WireGuard heeft precies één inkomende regel nodig voor UDP op de poort in ListenPort:
sudo ufw allow 51820/udp
sudo ufw status verboseOpenVPN heeft standaard UDP 1194 nodig, of TCP 443 als u die optie hebt gekozen. Beide hebben daarna IP-forwarding en een source NAT-regel nodig, omdat een Linux-systeem pakketten laat vallen die niet aan het systeem zijn gericht. Dat deel is voor beide protocollen identiek. De meeste meldingen over "de tunnel maakt verbinding, maar er is geen internet" worden hierdoor veroorzaakt. Als ufw nieuw voor u is, begin dan met de basisprincipes van de ufw-firewall op een VPS. Houd er ook rekening mee dat de meeste providers een tweede netwerkfirewall in hun configuratiescherm gebruiken. Een regel die u op de server hebt toegevoegd, heeft geen effect als het pakket de server niet bereikt. Als u begrijpt wat een poort is en hoe Linux op een poort luistert, kunt u beide controles sneller uitvoeren.
Hoe u in één alinea kiest
Gebruik WireGuard, tenzij u precies kunt aangeven wat het niet voor u kan doen. Als u TCP 443 nodig hebt om een restrictief netwerk te omzeilen, gebruikt u daar OpenVPN en kunt u overwegen beide te gebruiken: ze gebruiken verschillende poorten en kunnen zonder conflicten naast elkaar op één server draaien. Als u gebruikersaccounts of een tweede factor nodig hebt, probeer dit dan niet met WireGuard op te lossen. Plaats daar in plaats daarvan een identiteitslaag bovenop. Een zelfgehoste Headscale-controleserver gebruikt onderliggend WireGuard en voegt het accountmodel, de sleutelverspreiding en de goedkeuring van apparaten toe die u met plain WireGuard zelf moet beheren.
Migreren vanaf OpenVPN zonder onderbreking
Er is geen conversie. De PKI van OpenVPN wordt niet omgezet in WireGuard-sleutels, omdat WireGuard geen certificaten heeft die kunnen worden geconverteerd. Elke client krijgt een nieuw sleutelpaar dat op dezelfde manier wordt gegenereerd als dat van de server.
Migreer parallel in plaats van over te schakelen. WireGuard op UDP 51820 en OpenVPN op 1194 kunnen tegelijkertijd op dezelfde machine draaien. Start daarom wg0, controleer dit met sudo wg show door een recente latest handshake weer te geven en verplaats de clients vervolgens een voor een. Wanneer de lijst met OpenVPN-peers niet meer verandert, stopt u de service met sudo systemctl disable --now openvpn-server@server. Bewaar de CA-bestanden totdat u zeker bent van de migratie. Een ingetrokken client opnieuw opbouwen met een verwijderde CA is niet mogelijk.
Eén onderdeel wordt niet overgenomen: uw gebruikersnaam- en wachtwoordaccounts en de bijbehorende intrekkingshistorie. Bepaal waar u die onderbrengt voordat u de oude server uitschakelt, niet daarna.
FAQ
Is WireGuard sneller dan OpenVPN?
Op een standaard Ubuntu 24.04-server wel, en met ruime marge, omdat WireGuard versleuteling in de kernel uitvoert terwijl OpenVPN 2.6 elk pakket door een userspace-proces verwerkt. Met OpenVPN 2.7 en de ovpn-kernelmodule uit Linux 6.16 bevindt het datapad zich ook in de kernel en vallen beide in dezelfde klasse. Meet uw eigen prestaties met iperf3 over de tunnel in plaats van een getal uit een blog te vertrouwen, omdat op een VPS meestal uw CPU of uw toegestane bandbreedte de beperking vormt.
Kan WireGuard via TCP-poort 443 werken?
Niet zelfstandig. WireGuard gebruikt volgens het ontwerp uitsluitend UDP en er is geen TCP-modus gepland. Als u een netwerk moet doorkruisen dat alleen TCP 443 toestaat, verpakt u WireGuard in een tunnel zoals wstunnel of udp2raw. Dat voegt aan beide uiteinden een proces toe dat u moet uitvoeren en bijwerken. Als deze beperking kenmerkend is voor uw werkomgeving, is OpenVPN met proto tcp-server en port 443 het eenvoudigere antwoord.
Is OpenVPN nu onveilig?
Nee. Een actuele OpenVPN-configuratie met een AEAD-cipher zoals AES-256-GCM en ingeschakelde tls-crypt is een betrouwbare VPN. Het argument voor WireGuard berust op iets anders: OpenVPN bevat veel meer code en veel meer opties. Daardoor biedt het een vermoeide beheerder veel meer manieren om de configuratie verkeerd in te stellen. Minder keuzes betekent minder verkeerde keuzes.
Welke moet ik kiezen voor een persoonlijke VPN op een VPS?
WireGuard. Eén sleutelpaar per apparaat, één configuratiebestand van ongeveer tien regels, één geopende UDP-poort en een handshake die is voltooid voordat u merkt dat deze is gestart. Kies alleen OpenVPN als u regelmatig verbinding maakt vanaf netwerken die UDP blokkeren, of als u moet aansluiten op een bestaande certificaatautoriteit of gebruikersdirectory.