- Arquitectura simple y cifrado moderno: claves por peer y AllowedIPs para enrutado.
- Instalación rápida en Linux y apps oficiales para escritorio y móvil.
- Rendimiento superior a IPsec/OpenVPN, con roaming y baja latencia.
Si buscas una VPN que sea rápida, segura y sencilla de desplegar, WireGuard es de lo mejor que puedes usar hoy. Con un diseño minimalista y criptografía moderna, resulta ideal para usuarios domésticos, profesionales y entornos corporativos, tanto en equipos como en móviles y routers.
En esta guía práctica encontrarás desde los fundamentos hasta la configuración avanzada: instalación en Linux (Ubuntu/Debian/CentOS), claves, fichero del servidor y del cliente, reenvío IP, NAT/Firewall, aplicaciones en Windows/macOS/Android/iOS, split tunneling, rendimiento, solución de problemas, y compatibilidad con plataformas como OPNsense, pfSense, QNAP, Mikrotik o Teltonika.
¿Qué es WireGuard y por qué elegirlo?
WireGuard es un protocolo y software de VPN de código abierto pensado para crear túneles cifrados L3 sobre UDP. Destaca frente a OpenVPN o IPsec por su simplicidad, rendimiento y menor latencia, apoyándose en algoritmos modernos como Curve25519, ChaCha20-Poly1305, BLAKE2, SipHash24 y HKDF.
Su base de código es muy reducida (en torno a unas miles de líneas), lo que facilita auditorías, reduce superficie de ataque y mejora el mantenimiento. Además, está integrado en el kernel de Linux, lo que permite altas tasas de transferencia y respuesta ágil incluso en hardware modesto.
Es multiplataforma: existen apps oficiales para Windows, macOS, Linux, Android e iOS, y soporte en sistemas orientados a router/firewall como OPNsense. También está disponible en entornos como FreeBSD, OpenBSD o plataformas NAS y virtualización.
Cómo funciona por dentro
WireGuard establece un túnel cifrado entre pares (peers) identificados por claves. Cada dispositivo genera un par de claves (privada/pública) y comparte únicamente su clave pública con el otro extremo; a partir de ahí, todo el tráfico circula cifrado y autenticado.
La directiva AllowedIPs define tanto el enrutamiento saliente (qué tráfico debe ir por el túnel) como la lista de orígenes válidos que aceptará el peer remoto tras descifrar correctamente un paquete. Este enfoque se conoce como Cryptokey Routing y simplifica mucho la política de tráfico.
WireGuard es excelente con el roaming: si cambia la IP de tu cliente (por ejemplo, saltas de Wi‑Fi a 4G/5G), la sesión se reestablece de forma transparente y muy rápida. También es compatible con kill‑switch para bloquear el tráfico fuera del túnel si la VPN cae.
Instalación en Linux: Ubuntu/Debian/CentOS
En Ubuntu, WireGuard está en los repos oficiales. Actualiza paquetes y después instala el software para disponer del módulo y las herramientas wg y wg-quick.
apt update && apt upgrade -y
apt install wireguard -y
modprobe wireguard
En Debian estable puedes apoyarte en repos de rama inestable si lo necesitas, siguiendo el método recomendado y con cuidado en producción:
sudo sh -c 'echo deb https://deb.debian.org/debian/ unstable main > /etc/apt/sources.list.d/unstable.list'
sudo sh -c 'printf "Package: *\nPin: release a=unstable\nPin-Priority: 90\n" > /etc/apt/preferences.d/limit-unstable'
sudo apt update
sudo apt install wireguard
En CentOS 8.3 el flujo es similar: activas repos EPEL/ElRepo si hace falta y luego instalas el paquete de WireGuard y módulos correspondientes.
Generación de claves
Cada peer debe tener su par clave privada/pública. Aplica umask para restringir permisos y genera las claves para servidor y clientes.
umask 077
wg genkey | tee privatekey | wg pubkey > publickey
Repite en cada dispositivo. Nunca compartas la clave privada y guarda ambas de forma segura. Si lo prefieres, crea archivos con nombres diferenciados, por ejemplo claveprivadaservidor y clavepublicaservidor.
Configuración del servidor
Crea el fichero principal en /etc/wireguard/wg0.conf. Asigna una subred de la VPN (no usada en tu LAN real), el puerto UDP y añade un bloque [Peer] por cliente autorizado.
[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = <clave_privada_servidor>
# Cliente 1
[Peer]
PublicKey = <clave_publica_cliente1>
AllowedIPs = 10.0.0.2/32
También puedes usar otra subred, por ejemplo 192.168.2.0/24, y crecer con múltiples peers. Para despliegues rápidos es habitual emplear wg-quick con ficheros wgN.conf.
Configuración del cliente
En el cliente crea un archivo, por ejemplo wg0-client.conf, con su clave privada, dirección de túnel, DNS opcional y el peer del servidor con su endpoint público y puerto.
[Interface]
PrivateKey = <clave_privada_cliente>
Address = 10.0.0.2/24
DNS = 8.8.8.8
[Peer]
PublicKey = <clave_publica_servidor>
Endpoint = <ip_publica_servidor>:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
Si pones AllowedIPs = 0.0.0.0/0 todo el tráfico saldrá por la VPN; si solo quieres llegar a redes concretas del servidor, limita a las subredes necesarias y reducirás latencia y consumo.
Reenvío de IP y NAT en el servidor
Activa el reenvío para que los clientes tengan salida a Internet a través del servidor. Aplica los cambios al vuelo con sysctl.
echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
echo 'net.ipv6.conf.all.forwarding=1' >> /etc/sysctl.conf
sysctl -p
Configura NAT con iptables para la subred de la VPN, ajustando la interfaz WAN (por ejemplo, eth0):
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE
Hazlo persistente con los paquetes adecuados y guarda reglas para que se apliquen al reiniciar el sistema.
apt install -y iptables-persistent netfilter-persistent
netfilter-persistent save
Arranque y verificación
Levanta la interfaz y habilita el servicio para que arranque con el sistema. Este paso crea la interfaz virtual y añade rutas necesarias.
systemctl start wg-quick@wg0
systemctl enable wg-quick@wg0
wg
Con wg verás los peers, claves, transferencias y tiempos de último handshake. Si tu política de firewall es restrictiva, permite entrada por la interfaz wg0 y el puerto UDP del servicio:
iptables -I INPUT 1 -i wg0 -j ACCEPT
Apps oficiales: Windows, macOS, Android e iOS
En el escritorio puedes importar un fichero .conf. En móviles, la app permite crear la interfaz a partir de un código QR que contenga la configuración; resulta comodísimo para clientes no técnicos.
Si tu objetivo es exponer servicios autoalojados como Plex/Radarr/Sonarr a través de tu VPN, basta con asignar IPs en la subred de WireGuard y ajustar AllowedIPs para que el cliente alcance esa red; no necesitas abrir puertos adicionales al exterior si todo el acceso es por el túnel.
Ventajas y desventajas
WireGuard es muy rápido y simple, pero conviene considerar sus límites y particularidades según el caso de uso. Aquí tienes una visión equilibrada con lo más relevante.
Ventajas | Desventajas |
---|---|
Configuración clara y corta, ideal para automatizar | No incorpora ofuscación nativa de tráfico |
Alto rendimiento y baja latencia incluso en móviles | En algunos entornos legacy hay menos opciones avanzadas |
Criptografía moderna y código pequeño que facilita auditoría | Privacidad: asociación de IP/clave pública puede ser sensible según políticas |
Roaming fluido y kill‑switch disponibles en clientes | Compatibilidad de terceros no siempre homogénea |
Split tunneling: dirigir solo lo necesario
El túnel dividido te permite enviar por la VPN únicamente el tráfico que te interesa. Con AllowedIPs decides si haces redirección total o selectiva hacia una o varias subredes.
# Redirección completa de Internet
[Peer]
AllowedIPs = 0.0.0.0/0
# Solo acceder a recursos de la LAN 192.168.1.0/24 por la VPN
[Peer]
AllowedIPs = 192.168.1.0/24
Existen variantes como el túnel dividido inverso, filtrado por URL o por aplicación (a través de extensiones/clients específicos), aunque la base nativa en WireGuard es el control por IP y prefijos.
Compatibilidad y ecosistema
WireGuard nació para el kernel Linux, pero hoy es multiplataforma. OPNsense lo integra de forma nativa; en pfSense hubo periodos de retirada temporal por auditorías y posteriormente se ha ofrecido como paquete opcional según versión.
En NAS como QNAP puedes montarlo vía QVPN o máquinas virtuales, aprovechando NICs a 10GbE para altas velocidades. Routerboards Mikrotik incorporan soporte WireGuard desde RouterOS 7.x; en sus primeras iteraciones fue beta y no recomendable para producción, pero permite túneles P2P entre equipos e incluso clientes finales.
Fabricantes como Teltonika disponen de paquete para añadir WireGuard en sus routers; si necesitas equipamiento, puedes adquirirlos en shop.davantel.com y seguir las guías del fabricante para instalar paquetes extra.
Rendimiento y latencia
Gracias a su diseño minimalista y la elección de algoritmos eficientes, WireGuard logra velocidades muy altas y latencias bajas, por lo general superiores a L2TP/IPsec y OpenVPN. En pruebas locales con hardware potente, la tasa real duplica con frecuencia a las alternativas, lo que lo hace ideal para streaming, juegos o VoIP.
Implementación corporativa y teletrabajo
En empresa, WireGuard encaja para crear túneles entre sedes, acceso remoto de empleados y conexiones seguras entre CPD y nube (por ejemplo, para copias de seguridad). Su sintaxis concisa facilita el versionado y la automatización.
Se integra con directorios como LDAP/AD mediante soluciones intermedias y puede convivir con IDS/IPS o plataformas NAC. Una opción conocida es PacketFence (código abierto), que permite verificar el estado de los equipos antes de conceder acceso y controlar BYOD.
Windows/macOS: notas y trucos
La app oficial de Windows suele funcionar sin pegas, pero en algunas versiones de Windows 10 se han visto incidencias al usar AllowedIPs = 0.0.0.0/0 por conflictos de rutas. Como alternativa temporal, algunos usuarios optan por clientes basados en WireGuard como TunSafe o limitar AllowedIPs a subredes concretas.
Guía rápida Debian con claves de ejemplo
Genera claves para servidor y cliente en /etc/wireguard/ y crea la interfaz wg0. Asegúrate de que las IPs de la VPN no coinciden con otras de tu red local o de tus clientes.
cd /etc/wireguard/
wg genkey | tee claveprivadaservidor | wg pubkey > clavepublicaservidor
wg genkey | tee claveprivadacliente1 | wg pubkey > clavepublicacliente1
Servidor wg0.conf con subred 192.168.2.0/24 y puerto 51820. Activa PostUp/PostDown si quieres automatizar NAT con iptables al levantar/tumbar la interfaz.
[Interface]
Address = 192.168.2.1/24
PrivateKey = <clave_privada_servidor>
ListenPort = 51820
#PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey = <clave_publica_cliente1>
AllowedIPs = 0.0.0.0/0
Cliente con dirección 192.168.2.2, apuntando al endpoint público del servidor y con keepalive opcional si hay NAT intermedio.
[Interface]
PrivateKey = <clave_privada_cliente1>
Address = 192.168.2.2/32
[Peer]
PublicKey = <clave_publica_servidor>
AllowedIPs = 0.0.0.0/0
Endpoint = <ip_publica_servidor>:51820
#PersistentKeepalive = 25
Levanta la interfaz y observa cómo se crean la MTU, rutas con marca de fwmark y reglas de política de enrutamiento. Revisa la salida de wg‑quick y el estado con wg show.
Mikrotik: túnel entre RouterOS 7.x
Mikrotik ofrece soporte de WireGuard desde RouterOS 7.x. Crea una interfaz WireGuard en cada router, aplica y se generarán automáticamente claves. Asigna IPs a Ether2 como WAN y a wireguard1 como interfaz de túnel.
Configura los peers cruzando la clave pública del servidor en el lado cliente y viceversa, define Allowed Address/AllowedIPs (por ejemplo 0.0.0.0/0 si quieres permitir cualquier origen/destino por el túnel) y establece el endpoint remoto con su puerto. Un ping a la IP del túnel remoto confirmará el handshake.
Si conectas móviles u ordenadores al túnel de Mikrotik, ajusta con precisión las redes permitidas para no abrir más de la cuenta; WireGuard decide el flujo de paquetes según su Cryptokey Routing, así que es importante cuadrar orígenes y destinos.
Criptografía utilizada
WireGuard emplea un conjunto moderno: Noise como framework, Curve25519 para ECDH, ChaCha20 para cifrado simétrico autenticado con Poly1305, BLAKE2 para hashing, SipHash24 para tablas hash y HKDF para derivación de claves. Si se deprecia un algoritmo, el protocolo puede versionarse para migrar de forma transparente.
Pros y contras en el móvil
Usarlo en smartphones permite navegar seguro en Wi‑Fi públicas, ocultar tráfico al ISP y conectarte a tu red doméstica para acceder a NAS, domótica o juegos. En iOS/Android el cambio de red no tumba el túnel, lo que mejora la experiencia.
Como contras, arrastras algo de pérdida de velocidad y mayor latencia respecto a salida directa, y dependes de que el servidor esté siempre disponible. Aun así, frente a IPsec/OpenVPN la penalización suele ser menor.
WireGuard combina simplicidad, velocidad y seguridad real con una curva de aprendizaje amable: instalas, generas claves, defines AllowedIPs y estás listo. Si sumas reenvío IP, NAT bien aplicado, apps oficiales con QR, y compatibilidad con ecosistemas como OPNsense, Mikrotik o Teltonika, tienes una VPN moderna para casi cualquier escenario, desde asegurar redes públicas hasta conectar sedes y acceder a tus servicios caseros sin dolores de cabeza.
Redactor especializado en temas de tecnología e internet con más de diez años de experiencia en diferentes medios digitales. He trabajado como editor y creador de contenidos para empresas de comercio electrónico, comunicación, marketing online y publicidad. También he escrito en webs de economía, finanzas y otros sectores. Mi trabajo es también mi pasión. Ahora, a través de mis artículos en Tecnobits, intento explorar todas las novedades y nuevas oportunidades que el mundo de la tecnología nos ofrece día a día para mejorar nuestras vidas.