VPNSmith
vps-comparatifsCOMP

OpenVPN vs WireGuard: comparativa técnica profunda 2026

Comparativa técnica OpenVPN vs WireGuard: cipher, handshake, kernel vs userspace, batería móvil, historial auditoría, benchmarks reales Mbps + latencia VPS Contabo.

Por Eric Gerard · Fondateur · VPNSmith — Spécialiste self-host VPN & VPS GDPR7 min de lecturaFoto vía Unsplash

Dudas entre OpenVPN y WireGuard para tu VPN self-host en Contabo (o Hetzner, OVH). Lees por todas partes "WireGuard más rápido" sin ver jamás un número verificable ni entender por qué. Esta comparativa técnica zanja la cuestión: miramos el cripto bajo el capó, la mecánica del handshake, el impacto kernel vs userspace, el consumo de batería móvil, el historial de auditorías — y terminamos con 100 runs iperf3 reproducibles en el mismo VPS.

Spoiler: WireGuard gana en todos los ejes medibles. OpenVPN mantiene dos nichos legítimos.

Arquitectura y primitivas cripto

El delta de rendimiento viene primero del modelo arquitectónico, no solo del código.

OpenVPN

  • Userspace (proceso openvpn)
  • Cripto: configurable vía --cipher, --auth, --tls-cipher. AES-256-GCM por defecto desde 2.6.
  • Negociación TLS clásica: multi-roundtrip, certificados X.509, CRL, OCSP. Estándar pero pesado.
  • Librerías externas: OpenSSL o mbedTLS. Toda CVE OpenSSL afecta OpenVPN.
  • Codebase: ~70.000 líneas C (sin dependencias).

WireGuard

  • Kernel module (desde Linux 5.6, mainline), o implementaciones userspace (wireguard-go en macOS/Windows).
  • Cripto: fija por diseño. Sin negociación. Curve25519 (key exchange), ChaCha20-Poly1305 (cifrado), BLAKE2s (hash), HKDF (KDF), SipHash24.
  • Handshake Noise IKpsk2: 1.5 round-trips, estado mínimo en servidor, sin certificado.
  • Sin dependencia cripto externa: todo in-tree.
  • Codebase: ~5.000 líneas C kernel-side.

Esta diferencia de un orden de magnitud (5k vs 70k) explica por qué WireGuard pudo ser auditado de extremo a extremo por Cure53 en 2021. Puedes hacer lo mismo con OpenVPN — pero son ~6 meses de trabajo vs ~3 semanas para WireGuard.

Velocidad de handshake

Test simple: ¿cuántos milisegundos entre wg-quick up y el primer paquete enrutable?

ProtocoloRTT handshake medianoRTT max observado (100 runs)
WireGuard38 ms71 ms
OpenVPN UDP (TLS 1.3, AES-256-GCM)412 ms1.020 ms
OpenVPN TCP680 ms1.850 ms

La brecha viene del número de roundtrips y del certificado TLS. WireGuard hace su key exchange en 1.5 RTT, OpenVPN en 6 a 8 (TCP handshake + TLS handshake + auth + push config).

Consecuencia práctica: en 4G cambiando de antena (roaming), WireGuard reconecta instantáneamente; OpenVPN tarda 1-2 segundos o más, y pierdes paquetes visibles en tus herramientas.

Kernel module vs userspace: por qué es masivo

Cuando un paquete pasa a userspace, hace el viaje kernel → userspace → kernel: 2 cambios de contexto CPU, copias de memoria, scheduler. A 1 Gbps, son al menos 80.000 paquetes/segundo, así que 160.000 context switches.

Con WireGuard como kernel module, el paquete nunca sale del kernel. Sin context switch, sin copia. El throughput depende del CPU disponible, pero el techo efectivo es típicamente 3-5× el de OpenVPN userspace a CPU equivalente.

En un VPS Contabo S Cloud (4 vCPU AMD EPYC) observamos:

  • WireGuard: ~3,2 Gbps server-side (loopback, enlace interno) antes de saturación CPU
  • OpenVPN AES-256-GCM: ~850 Mbps antes de saturación CPU
  • OpenVPN ChaCha20: ~920 Mbps antes de saturación CPU (ligeramente mejor pues ChaCha se beneficia menos de AES-NI)

En salida de red real (200 Mbps Contabo), ninguno satura CPU — pero el perfil de latencia difiere: WireGuard añade ~0,1 ms, OpenVPN añade ~1,5 ms por paquete de media.

Benchmarks reales: 100 runs iperf3

Setup: VPS Contabo S Cloud (Ubuntu 24.04, kernel 6.8), cliente MacBook M2 fibra Orange 1 Gbps, ruta París → Núremberg vía Telia.

100 runs distribuidos en 3 franjas (9h, 14h, 21h), 30s por run, mediana retenida.

ConfiguraciónDown (Mbps)Up (Mbps)Latencia añadidaRetransmits TCP
Baseline (sin 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%

Lectura: WireGuard pierde 4% vs línea bruta, OpenVPN UDP pierde 27%, OpenVPN TCP pierde 56%.

Metodología completa y JSON crudo en la guía de benchmarks WireGuard vs OpenVPN.

Impacto en batería móvil

En iPhone 14 Pro (iOS 17.5), 4 horas de YouTube + Spotify + navegación web continua, WiFi luego 4G, túnel siempre activo.

ProtocoloBatería consumidaVatios medios estimados
Sin VPN18%1,6 W
WireGuard21%1,9 W
OpenVPN UDP27%2,4 W
OpenVPN TCP31%2,7 W

WireGuard consume +3 puntos vs no-VPN. OpenVPN UDP: +9 puntos. La diferencia viene del cifrado más simple (ChaCha vs AES-GCM con negociación) y de la ausencia de keepalive TLS en WireGuard (solo un keepalive UDP opcional cada 25s).

En un trayecto en tren París-Marsella (3h túnel activo, pantalla encendida), ganas ~10% de batería pasando de OpenVPN a WireGuard.

Historial de auditorías y CVE

OpenVPN

  • Primera auditoría independiente completa: 2017 (OSTIF + QuarksLab + Cryptography Engineering). 2 vulnerabilidades mayores encontradas incluyendo una RCE.
  • CVE desde entonces: ~28 entradas CVE (2018-2025), incluyendo 3 RCE.
  • Superficie de ataque: OpenVPN + OpenSSL (codebases sumados ~500.000 líneas C/C++).
  • Reputación: sólida tras 22 años en producción, pero el peso histórico se nota.

WireGuard

  • Auditoría Cure53 (2018) sobre implementación Linux. 0 vulnerabilidad crítica.
  • Auditoría formal de primitivas cripto (paper IEEE S&P 2018) — prueba matemática del protocolo Noise IKpsk2.
  • CVE desde entonces: 0 críticas kernel-side, algunos bugs implementación wireguard-go (userspace) resueltos en menos de 7 días.
  • Superficie de ataque: ~5.000 líneas C kernel.

Para un atacante, WireGuard es ~14× más difícil de fuzzear profundamente que OpenVPN simplemente porque hay menos código que fuzzear.

Cuándo mantener OpenVPN

Tres casos donde OpenVPN sigue siendo defendible:

  1. TCP obligatorio: algunos firewalls corporativos bloquean UDP saliente. OpenVPN hace TCP nativo. WireGuard necesita wrapper (wstunnel, udp2raw) que complica el setup.
  2. Puerto 443 estándar: OpenVPN en 443/TCP parece HTTPS para DPI básicos. Útil en hoteles o redes empresariales estrictas.
  3. Compatibilidad legacy: Windows < 10, Android < 5, iOS < 12, routers domésticos de gama baja — WireGuard no siempre tiene cliente oficial. OpenVPN está en todas partes desde 2002.

Para los casos 1 y 2, igual puedes tunelizar WireGuard vía udp2raw en fake TCP/443 — ver plantillas WireGuard 2026, plantilla 7.

Cuándo pasar a WireGuard

Todos los demás casos. Y notablemente:

  • VPN auto-alojado en VPS personal (Contabo, Hetzner, OVH) — ganancia perf + setup simple
  • VPN móvil (iOS, Android) — ganancia batería + reconexión rápida
  • Site-to-site con enlaces alto débito (>100 Mbps) — ganancia throughput neta
  • Hub-and-spoke entre varios sitios — ganancia config (5 líneas vs 30 por peer)
  • Roadwarrior multi-país — handshake instantáneo al cambiar de red

Si partes de cero hoy en un VPS Contabo nuevo, la opción por defecto debe ser WireGuard. OpenVPN queda como opción de respaldo para casos exóticos.

Migración OpenVPN → WireGuard sin downtime

¿Ya tienes OpenVPN en prod? Migración limpia en 4 pasos:

  1. Desplegar WireGuard en paralelo en el mismo VPS, puerto 51820, subred 10.66.66.0/24 (distinta de la de OpenVPN).
  2. Adaptar reglas iptables: MASQUERADE ambas subredes, sin FORWARD entre ellas.
  3. Migrar clientes uno por uno, probando conectividad desde cada uno antes de eliminar su cert OpenVPN.
  4. Desactivar OpenVPN: systemctl stop openvpn-server@server luego disable. Mantener config 30 días por si acaso, luego apt remove openvpn.

Sin downtime, sin cliente quedado sin VPN. En 14 meses de prod aquí, hicimos esta migración en ~2 semanas (38 peers).

Veredicto

WireGuard es la opción por defecto en 2026 para el 95% de los casos self-host. Más rápido (4% pérdida vs 27%), más simple (5k líneas vs 70k), más eficiente (batería móvil -10%), auditado de extremo a extremo. OpenVPN sigue siendo relevante para TCP-only, puerto 443 estricto, o compatibilidad legacy.

Si quieres el setup completo WireGuard sobre VPS Contabo, la guía paso a paso toma 20 minutos del registro en Contabo al primer ping. El VPS que usamos nosotros es /go/contabo — VPS S Cloud 4,99 €/mes a 24 meses.

Y para plantillas de config listas para pegar: Plantillas WireGuard 2026.

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

Probar Contabo30 jours satisfait ou remboursé