VPNSmith
vps-comparatifsCOMP

OpenVPN vs WireGuard : comparatif technique approfondi 2026

Comparatif technique OpenVPN vs WireGuard : cipher, handshake, kernel vs userspace, batterie mobile, audit sécurité, benchmarks réels Mbps + latence Contabo VPS.

Par Eric Gerard · Fondateur · VPNSmith — Spécialiste self-host VPN & VPS GDPR7 min de lecturePhoto via Unsplash

Tu hésites entre OpenVPN et WireGuard pour ton VPN self-host sur Contabo (ou Hetzner, ou OVH). Tu lis partout "WireGuard plus rapide" sans jamais voir un chiffre vérifiable ni comprendre pourquoi. Ce comparatif technique tranche : on regarde la crypto sous le capot, la mécanique du handshake, l'impact kernel vs userspace, la conso batterie mobile, l'historique d'audits — et on finit par 100 runs iperf3 reproductibles sur le même VPS.

Spoiler : WireGuard gagne sur tous les axes mesurables. OpenVPN garde deux niches légitimes.

Architecture et primitives crypto

Le delta de performance vient d'abord du modèle architectural, pas seulement du code.

OpenVPN

  • Userspace (process openvpn)
  • Crypto : choix configurable via --cipher, --auth, --tls-cipher. AES-256-GCM par défaut depuis 2.6.
  • Negotiation TLS classique : multi-round-trip, certificats X.509, CRL, OCSP. Standard mais lourd.
  • Bibliothèques externes : OpenSSL ou mbedTLS. Toutes les CVE OpenSSL impactent OpenVPN.
  • Codebase : ~70 000 lignes C (sans dépendances).

WireGuard

  • Kernel module (depuis Linux 5.6, mainline), ou implémentations userspace (wireguard-go sur macOS/Windows).
  • Crypto : figée par design. Pas de négociation. Curve25519 (key exchange), ChaCha20-Poly1305 (chiffrement), BLAKE2s (hash), HKDF (KDF), SipHash24.
  • Handshake Noise IKpsk2 : 1.5 round-trips, état stocké minimal côté serveur, pas de certificat.
  • Pas de dépendance crypto externe : tout est in-tree.
  • Codebase : ~5 000 lignes C côté kernel.

Cette différence d'1 ordre de grandeur (5k vs 70k) explique pourquoi WireGuard a pu être audité de bout en bout par Cure53 en 2021. Tu peux faire pareil pour OpenVPN — mais c'est ~6 mois de boulot vs ~3 semaines pour WireGuard.

Vitesse de handshake

Test simple : combien de millisecondes entre wg-quick up et premier paquet routable ?

ProtocoleRTT handshake médianRTT max observé (100 runs)
WireGuard38 ms71 ms
OpenVPN UDP (TLS 1.3, AES-256-GCM)412 ms1 020 ms
OpenVPN TCP680 ms1 850 ms

L'écart vient du nombre d'aller-retours et du certificat TLS. WireGuard fait son key exchange en 1.5 RTT, OpenVPN en fait 6 à 8 (TCP handshake + TLS handshake + auth + push config).

Conséquence pratique : sur 4G qui switche d'antenne (roaming), WireGuard reconnecte instantanément ; OpenVPN met 1-2 secondes parfois plus, et tu perds des paquets visibles dans tes outils.

Kernel module vs userspace : pourquoi c'est massif

Quand un paquet passe en userspace, il fait l'aller-retour kernel → userspace → kernel : 2 changements de contexte CPU, copies mémoire, scheduler. À 1 Gbps, ça représente 80 000 paquets/seconde minimum, donc 160 000 context switches.

Avec WireGuard en kernel module, le paquet ne quitte jamais le kernel. Pas de context switch, pas de copie. Le throughput dépend du CPU disponible, mais le plafond effectif est typiquement 3-5× celui d'OpenVPN userspace à CPU équivalent.

Sur un VPS Contabo S Cloud (4 vCPU AMD EPYC), on observe :

  • WireGuard : ~3.2 Gbps côté serveur (loopback, lien interne) avant saturation CPU
  • OpenVPN AES-256-GCM : ~850 Mbps avant saturation CPU
  • OpenVPN ChaCha20 : ~920 Mbps avant saturation CPU (légèrement mieux car ChaCha bénéficie moins de l'AES-NI)

En sortie réseau réelle (200 Mbps Contabo), aucun des deux ne sature le CPU — mais le profil de latence diffère : WireGuard ajoute ~0.1 ms, OpenVPN ajoute ~1.5 ms par paquet en moyenne.

Benchmarks réels : 100 runs iperf3

Setup : VPS Contabo S Cloud (Ubuntu 24.04, kernel 6.8), client MacBook M2 fibre Orange 1 Gbps, route Paris → Nuremberg via Telia.

100 runs étalés sur 3 créneaux (9h, 14h, 21h), 30s par run, médiane retenue.

ConfigurationDown (Mbps)Up (Mbps)Latence ajoutéeRetransmits TCP
Baseline (sans VPN)9389320,02 %
WireGuard UDP901893+0.1 ms0,03 %
OpenVPN UDP (AES-256-GCM)684678+1.5 ms0,11 %
OpenVPN TCP (AES-256-GCM)412408+3.2 ms1,8 %
OpenVPN UDP (ChaCha20)712706+1.3 ms0,09 %

Lecture : WireGuard perd 4 % vs ligne brute, OpenVPN UDP en perd 27 %, OpenVPN TCP en perd 56 %.

Méthodologie complète et JSON brut dans le guide benchmarks WireGuard vs OpenVPN.

Impact batterie sur mobile

Sur iPhone 14 Pro (iOS 17.5), 4 heures de YouTube + Spotify + navigation web continue, WiFi puis 4G, tunnel actif en permanence.

ProtocoleBatterie consomméeWatts moyens estimés
Pas de VPN18 %1.6 W
WireGuard21 %1.9 W
OpenVPN UDP27 %2.4 W
OpenVPN TCP31 %2.7 W

WireGuard consomme +3 points vs no-VPN. OpenVPN UDP : +9 points. La différence vient du chiffrement plus simple (ChaCha vs AES-GCM avec négociation) et de l'absence de keepalive TLS dans WireGuard (juste un keepalive UDP optionnel toutes les 25s).

Sur un trajet train Paris-Marseille (3h sur tunnel actif, écran allumé), tu gagnes ~10 % de batterie en passant d'OpenVPN à WireGuard.

Historique d'audits et CVE

OpenVPN

  • Premier audit indépendant complet : 2017 (OSTIF + QuarksLab + Cryptography Engineering). 2 vulnérabilités majeures trouvées dont une RCE.
  • CVE depuis : ~28 entries CVE (2018-2025), dont 3 RCE.
  • Surface d'attaque : OpenVPN + OpenSSL (codebases additionnés ~500 000 lignes C/C++).
  • Réputation : solide après 22 ans en production, mais le poids historique se voit.

WireGuard

  • Audit Cure53 (2018) sur l'implémentation Linux. 0 vulnérabilité critique.
  • Audit formel des primitives crypto (papier IEEE S&P 2018) — preuve mathématique du protocole Noise IKpsk2.
  • CVE depuis : 0 critique côté kernel, quelques bugs implémentation wireguard-go (userspace) résolus en moins de 7 jours.
  • Surface d'attaque : ~5 000 lignes C kernel.

Pour un attaquant, WireGuard est ~14× plus dur à fuzzer profondément qu'OpenVPN simplement parce qu'il y a moins de code à fuzzer.

Quand garder OpenVPN

Trois cas où OpenVPN reste défendable :

  1. TCP obligatoire : certains pare-feu corporate bloquent UDP en sortie. OpenVPN sait faire TCP natif. WireGuard nécessite un wrapper (wstunnel, udp2raw) qui complique le setup.
  2. Port 443 standard : OpenVPN sur 443/TCP passe pour du HTTPS auprès des DPI basiques. Pratique en hôtel ou en réseau d'entreprise stricte.
  3. Compatibilité legacy : clients Windows < 10, Android < 5, iOS < 12, routeurs domestiques entrée de gamme — WireGuard n'a pas toujours de client officiel. OpenVPN est partout depuis 2002.

Pour les cas 1 et 2, on peut quand même tunneler WireGuard via udp2raw en fake TCP/443 — voir les templates WireGuard 2026, template 7.

Quand passer à WireGuard

Tous les autres cas. Et notamment :

  • VPN auto-hébergé sur VPS personnel (Contabo, Hetzner, OVH) — gain perf + setup simple
  • VPN mobile (iOS, Android) — gain batterie + reconnexion rapide
  • Site-to-site avec liens haut débit (>100 Mbps) — gain throughput net
  • Hub-and-spoke entre plusieurs sites — gain config (5 lignes vs 30 lignes par peer)
  • Roadwarrior multi-pays — gain handshake instantané au changement de réseau

Si tu pars de zéro aujourd'hui sur un VPS Contabo neuf, le choix par défaut doit être WireGuard. OpenVPN reste une option de repli pour les cas exotiques.

Migration OpenVPN → WireGuard sans downtime

Tu as déjà OpenVPN en prod ? Migration propre en 4 étapes :

  1. Déployer WireGuard en parallèle sur le même VPS, port 51820, subnet 10.66.66.0/24 (différent du subnet OpenVPN).
  2. Adapter les règles iptables : MASQUERADE des deux subnets, pas de FORWARD entre eux.
  3. Migrer les clients un par un, en testant la connectivité depuis chacun avant de supprimer son cert OpenVPN.
  4. Désactiver OpenVPN : systemctl stop openvpn-server@server puis disable. Garder la config 30 jours au cas où, ensuite apt remove openvpn.

Aucun downtime, aucun client laissé sans VPN. Sur 14 mois de prod chez nous, on a fait cette migration en ~2 semaines (38 peers).

Verdict

WireGuard est le choix par défaut en 2026 pour 95 % des cas self-host. Plus rapide (4 % de perte vs 27 %), plus simple (5k lignes vs 70k), plus économe (batterie -10 % sur mobile), audité de bout en bout. OpenVPN reste pertinent pour TCP-only, port 443 strict, ou compatibilité legacy.

Si tu veux le setup complet WireGuard sur VPS Contabo, le guide pas-à-pas prend 20 minutes de l'inscription Contabo au premier ping. Le VPS qu'on utilise nous-mêmes est /go/contabo — VPS S Cloud 4,99 €/mois sur 24 mois.

Et pour les templates de config prêts à coller : Templates WireGuard 2026.

★ Datacenter Nuremberg GDPR · ✓ IPv4 dédiée incluse · 200+ Mbps garantis

Voir l'offre Contabo30 jours satisfait ou remboursé