SSD Nodes Learn Hosting plans →
Guías Matt ConnorPor Matt Connor · Actualizado 2026-10-28

WireGuard frente a OpenVPN: cuál alojar tú mismo

WireGuard gana en velocidad, tamaño de configuración y superficie de auditoría. Compara las pruebas y los cuatro casos concretos en los que OpenVPN sigue siendo mejor.

La respuesta breve

WireGuard frente a OpenVPN, para una persona que ejecuta un servidor VPN en su propio VPS, no plantea una comparación equilibrada: elija WireGuard. Es más pequeño, se ejecuta dentro del kernel de Linux, establece la conexión en una fracción de segundo y una configuración funcional del cliente ocupa unas diez líneas. OpenVPN conserva cuatro usos reales. Si ninguno corresponde a su caso, no lo necesita.

Esos cuatro usos son salir de una red que sólo permite el puerto TCP 443, integrarse con una autoridad de certificación existente, autenticar a usuarios identificados mediante una contraseña o un segundo factor, y crear un puente en la capa 2. Todo lo que sigue aporta las pruebas en las que se basa esta recomendación y señala el punto exacto en el que cada excepción empieza a aplicarse a su caso.

Por qué WireGuard ganó para los usuarios que se autoalojan

El código base es lo suficientemente pequeño para leerlo. El proyecto WireGuard sitúa su implementación del protocolo en unas 4.000 líneas de código. OpenVPN alcanza las seis cifras si se cuenta la biblioteca OpenSSL, de la que depende para cada operación criptográfica. El tamaño importa porque cada línea es una superficie de ataque, y ni usted ni su revisor van a leer 100.000 líneas. Usted sí podría leer 4.000.

Se ejecuta en el kernel. WireGuard está en el mainline de Linux desde la versión 5.6, por lo que Ubuntu 24.04 y Debian 13 lo incluyen sin necesidad de compilar nada. Los paquetes se cifran donde ya están, en el espacio del kernel, sin copias hacia un proceso en espacio de usuario y de vuelta. Compruébelo antes que nada:

sudo modprobe wireguard && echo ok

En un VPS KVM esto imprime ok. En la virtualización de contenedores que comparte el kernel del host, como OpenVZ o LXC, falla con Operation not supported, porque no se puede cargar un módulo en un kernel que no es el suyo.

No hay nada que negociar. WireGuard tiene un conjunto de cifrado fijo: ChaCha20-Poly1305 para los datos, con claves Curve25519. No hay versión a la que degradar ni opción que configurar mal. OpenVPN negocia el cifrado y la versión de TLS (seguridad de la capa de transporte) con cada cliente, lo cual es flexibilidad, pero también es donde residen las configuraciones erróneas. Un servidor dejado con data-ciphers AES-256-GCM:AES-128-CBC aceptará sin problemas volver al cifrado CBC para un cliente que no ofrezca nada mejor, y el registro no marca el cifrado más débil como un problema. Cuando el offload del canal de datos está disponible, OpenVPN imprime una nota indicando que la entrada CBC ha desactivado el offload, lo cual es una advertencia sobre la velocidad, no sobre la seguridad.

El puerto no responde. Un paquete de WireGuard que falla su comprobación de autenticación de mensaje se descarta sin ninguna respuesta, por lo que nmap -sU -p 51820 no puede distinguir un servidor WireGuard de un puerto que su firewall descarta silenciosamente: ambos devuelven open|filtered. Solo un puerto sin filtrar donde no hay nada escuchando se delata, porque el kernel responde con un ICMP port unreachable y nmap lo reporta como closed. Un servidor OpenVPN en modo TCP completa el handshake de TCP antes de decidir que usted no es bienvenido, lo cual es suficiente para demostrar a un escáner que hay algo ahí. OpenVPN sobre UDP con tls-crypt es casi igual de silencioso, por lo que este es un argumento en contra de ejecutar OpenVPN sobre TCP, más que en contra de OpenVPN en sí.

El roaming es gratuito. Un par de WireGuard se identifica por su clave pública, no por su dirección. Su portátil se mueve de casa a un punto de acceso móvil, envía un handshake desde la nueva dirección y el servidor actualiza el endpoint al que responde. Nada se reconecta porque nunca hubo una conexión establecida. OpenVPN puede hacer algo similar con float, pero el cliente normalmente cierra y reconstruye una sesión TLS completa, razón por la cual la pausa al abrir la tapa es notable en OpenVPN y no lo es en WireGuard.

Velocidad en 2026: la diferencia sólo se reduce con la descarga en el kernel

Durante años, el argumento honesto sobre la velocidad era que OpenVPN copiaba cada paquete al espacio de usuario, lo cifraba allí y volvía a copiarlo, mientras WireGuard nunca salía del kernel. En un servidor Ubuntu 24.04 estándar, esa sigue siendo la situación y WireGuard es muy superior en velocidad. Lo que cambió en 2026 es que OpenVPN también puede mover su ruta de datos al kernel, cuando tanto el kernel como la versión de OpenVPN lo admiten. Una comparación que ignore esto está desactualizada.

OpenVPN 2.7 se publicó en febrero de 2026 con compatibilidad con el módulo de kernel ovpn del proyecto upstream, que se integró en Linux 6.16. Esto es DCO (descarga del canal de datos): el canal de control permanece en el espacio de usuario y la ruta de datos principal pasa al kernel, que es aproximadamente lo que WireGuard siempre ha hecho. Con un kernel y un OpenVPN suficientemente recientes para usarlo, el rendimiento está en la misma categoría, no en una categoría distinta. Compruebe lo que tiene realmente:

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

En octubre de 2026, un Ubuntu 24.04 LTS estándar incluye OpenVPN 2.6, no 2.7, y el módulo ovpn necesita la versión 2.7. En esa versión, sólo obtiene la descarga mediante el paquete openvpn-dco-dkms antiguo, que compila un módulo externo contra el kernel en ejecución y, por tanto, se vuelve a compilar con cada actualización del kernel. Es un componente adicional que WireGuard no necesita. Ubuntu 26.04 LTS incluye OpenVPN 2.7.0 y un kernel Linux 7.0, ambos suficientemente recientes para ovpn. En esa versión, la línea modinfo anterior es la que debe comprobar.

Lea la letra pequeña de DCO antes de considerarlo un motivo para seguir usando OpenVPN. Sólo admite túneles de Layer 3, acepta únicamente cifrados AEAD (cifrado autenticado con datos asociados: AES-GCM o ChaCha20-Poly1305), no admite compresión y, en un servidor, sólo funciona con topology subnet. Cada una de estas restricciones elimina una parte de la flexibilidad que originalmente distinguía a OpenVPN. Un OpenVPN rápido es un OpenVPN configurado para parecerse a WireGuard.

No confíe en ninguna cifra de rendimiento publicada, incluidas las de esta página. En una VPS, el límite suele ser la cuota de CPU o de red, no el protocolo. Mida el rendimiento con iperf3 ejecutándose a través del túnel y después fuera de él. Compare ambos resultados.

Donde OpenVPN sigue siendo útil

Necesita salir a través del puerto TCP 443. WireGuard es exclusivamente UDP, por diseño, y no está previsto que incluya un modo TCP. Una red de hotel que filtre únicamente por número de puerto suele permitir el paso de OpenVPN configurado con proto tcp-server y port 443. No confunda esto con un disfraz: OpenVPN sobre TCP utiliza su propio entramado de paquetes en lugar de una sesión TLS ordinaria, por lo que un firewall corporativo o un proxy que inspeccione o termine HTTPS puede identificarlo y bloquearlo. WireGuard necesita un envoltorio como wstunnel o udp2raw para atravesar la misma red, lo que supone un proceso adicional que ejecutar y mantener actualizado. Tenga en cuenta el conflicto: si un servidor web ya ocupa el puerto TCP 443 en esa dirección IP, uno de los dos debe cambiar.

Ya gestiona una autoridad de certificación. OpenVPN se autentica mediante certificados X.509, por lo que se integra en una PKI (infraestructura de clave pública) que usted ya opere. Los certificados caducan por sí mismos y se revocan añadiéndolos a una lista de revocación de certificados que el servidor lee mediante crl-verify. WireGuard no utiliza certificados, no tiene caducidad ni listas de revocación. Eliminar un par (peer) implica editar la configuración del servidor y recargarla. Con diez pares es manejable. Con cuatrocientos, y ante requisitos de auditoría, el modelo de certificados realiza un trabajo valioso para usted.

Necesita usuarios con nombre, no solo claves. OpenVPN puede delegar la autenticación a un sistema externo con auth-user-pass-verify o un plugin como openvpn-plugin-auth-pam.so, que es el método para añadir LDAP o un segundo factor de contraseña de un solo uso. WireGuard no tiene concepto de usuario. Una clave está en la configuración o no lo está. Si su requisito es "Sara debe introducir un código desde su teléfono", WireGuard no puede gestionar eso por sí solo.

Necesita Capa 2 o un cliente para sistemas antiguos. OpenVPN con dev tap puentea tramas Ethernet, lo cual es relevante para protocolos de difusión (broadcast) y juegos de red local antiguos. WireGuard es exclusivamente de Capa 3 y siempre lo será. OpenVPN también dispone de clientes para hardware y sistemas operativos que nunca tendrán una aplicación de WireGuard. Ambas son razones cada vez menos frecuentes, y dev tap es incompatible con DCO, por lo que al usar el puente se opta por la ruta de menor rendimiento.

El coste real de las dos configuraciones

Una identidad de WireGuard se crea con un comando. Los paréntesis son importantes porque establecen los permisos del archivo antes de que exista la clave:

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

El equivalente en OpenVPN es una autoridad certificadora que pasa a ser responsabilidad suya mientras exista la 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

Ninguna de las dos listas es injusta. La autoridad certificadora permite gestionar la caducidad y la revocación. A cambio, debe proteger durante años una clave privada, recordar las renovaciones y reconstruir la infraestructura si la pierde. Si no utiliza esas funciones, paga por nada. El procedimiento completo de WireGuard, incluido el reenvío, NAT (traducción de direcciones de red) y los fallos del handshake que pueden consumir toda una tarde, se describe en la guía para alojar una VPN de WireGuard en su VPS.

Qué exige cada uno al firewall

WireGuard necesita exactamente una regla de entrada para UDP en el puerto indicado en ListenPort:

sudo ufw allow 51820/udp
sudo ufw status verbose

OpenVPN necesita UDP 1194 de forma predeterminada, o TCP 443 si eligió esa opción. Después, ambos necesitan que el reenvío de IP esté habilitado y una regla de NAT de origen, porque un sistema Linux descarta los paquetes que no están dirigidos a él. Esta parte es idéntica para ambos protocolos y es la causa de la mayoría de los informes de «el túnel se conecta, pero no hay Internet». Si no conoce ufw, empiece por los conceptos básicos del firewall ufw en un VPS y recuerde que la mayoría de los proveedores ejecutan un segundo firewall de red en su panel de control: una regla que añada en el servidor no sirve de nada si el paquete nunca llega al servidor. Entender qué es un puerto y cómo escucha Linux en él permite completar ambas comprobaciones más rápido.

Cómo elegir, en un solo párrafo

Ejecute WireGuard, salvo que pueda indicar qué función concreta no puede realizar. Si necesita TCP 443 para atravesar una red restrictiva, ejecute OpenVPN en ese puerto y considere ejecutar ambos: usan puertos diferentes y pueden coexistir en un mismo servidor sin conflictos. Si necesita cuentas por usuario o un segundo factor, no intente forzar esa función en WireGuard. Añada una capa de identidad por encima. Un servidor de control Headscale autohospedado usa WireGuard en la capa subyacente y añade el modelo de cuentas, la distribución de claves y la aprobación de dispositivos que WireGuard sin más deja bajo su responsabilidad.

Migrar desde OpenVPN sin una interrupción

No existe una conversión. La PKI de OpenVPN no se convierte en claves de WireGuard, porque WireGuard no tiene certificados que se puedan convertir. Cada cliente obtiene un par de claves nuevo, generado de la misma forma que el del servidor.

Haga la migración en paralelo en lugar de cambiar de un servicio a otro. WireGuard en UDP 51820 y OpenVPN en 1194 pueden ejecutarse al mismo tiempo en el mismo equipo. Active wg0, confirme su funcionamiento con sudo wg show mostrando un latest handshake reciente y, después, migre los clientes uno por uno. Cuando la lista de pares de OpenVPN deje de cambiar, detenga el servicio con sudo systemctl disable --now openvpn-server@server. Conserve los archivos de la CA hasta estar seguro, porque no es posible volver a crear un cliente revocado usando una CA que haya eliminado.

Hay un elemento que realmente no se conserva: las cuentas de usuario y contraseña, junto con el historial de revocaciones asociado. Decida dónde se almacenará antes de apagar el servidor antiguo, no después.

FAQ

¿Es WireGuard más rápido que OpenVPN?

En un servidor Ubuntu 24.04 estándar, sí, y por un margen amplio, porque WireGuard cifra en el kernel mientras que OpenVPN 2.6 procesa cada paquete a través de un proceso en el espacio de usuario. Con OpenVPN 2.7 y el módulo de kernel ovpn de Linux 6.16, la ruta de datos también se encuentra en el kernel y ambos protocolos pertenecen a la misma categoría. Mida su propio rendimiento con iperf3 a través del túnel en lugar de confiar en una cifra de un blog, ya que en un VPS el límite suele ser su CPU o su cuota de ancho de banda.

¿Puede WireGuard ejecutarse sobre el puerto TCP 443?

Por sí mismo, no. WireGuard es exclusivamente UDP por diseño y no hay planes para un modo TCP. Para atravesar una red que solo permite TCP 443, debe envolverlo en un túnel como wstunnel o udp2raw, lo cual añade un proceso que debe ejecutar y parchear en ambos extremos. Si esa restricción es su entorno de trabajo habitual, OpenVPN con proto tcp-server y port 443 es la respuesta más sencilla en una red que filtra solo por puerto, aunque un proxy que inspeccione HTTPS aún puede detectarlo y bloquearlo.

¿Es OpenVPN inseguro actualmente?

No. Un OpenVPN actualizado con un cifrado AEAD como AES-256-GCM y tls-crypt habilitado es una VPN sólida. La ventaja de WireGuard reside en otro aspecto: OpenVPN contiene mucho más código y muchas más opciones, por lo que ofrece a un administrador cansado muchas más formas de configurarlo incorrectamente. Menos opciones significan menos errores posibles.

¿Cuál debería elegir para una VPN personal en un VPS?

WireGuard. Un par de claves por dispositivo, un archivo de configuración de unas diez líneas, un puerto UDP abierto y un protocolo de enlace que finaliza antes de que note que comenzó. Elija OpenVPN solo si se conecta habitualmente desde redes que bloquean UDP, o si debe integrarse en una autoridad de certificación o un directorio de usuarios que ya exista.

¿Te resultó útil este artículo?