Montar una VPN propia con WireGuard es una alternativa cada vez más sencilla a pagar una suscripción mensual a un proveedor comercial. Puede hacerse prácticamente por 0 euros adicionales utilizando un ordenador, mini PC o Raspberry Pi que ya permanezca encendido en casa, o desplegarse en un VPS con IP pública por unos pocos euros al mes. No ofrece exactamente lo mismo que NordVPN, Proton VPN o Mullvad, pero para acceder de forma segura a una red privada, proteger el tráfico desde una Wi-Fi pública o disponer de una IP de salida propia, puede resultar incluso más interesante.
Las claves para montar una VPN propia en 30 segundos
- WireGuard está integrado en Linux moderno y utiliza una configuración considerablemente más sencilla que IPsec.
- Un equipo doméstico permite montar la VPN sin una cuota mensual adicional, aunque necesita IP accesible y normalmente redirección de puertos.
- Con CG-NAT, habitual en algunos operadores, un VPS con IP pública suele ser la solución más sencilla.
- Un servidor Linux básico es suficiente: proveedores españoles como GINERNET, Raiola Networks o plataformas cloud como Aire Cloud pueden utilizarse.
- Una VPN propia aporta control, pero no proporciona automáticamente el anonimato de una VPN comercial con miles de usuarios compartiendo IP.
WireGuard es un túnel VPN moderno que encapsula tráfico IP mediante UDP y utiliza criptografía basada en claves públicas y privadas. Está disponible directamente en las principales distribuciones Linux y cuenta con clientes oficiales para Windows, macOS, Android e iOS. La propia documentación del proyecto contempla además el encaminamiento de todo el tráfico de Internet a través del túnel.
La decisión inicial es más importante que la instalación: ¿usar un servidor en casa o contratar un VPS?
En casa, VPS o cloud: tres formas diferentes de montar WireGuard
La alternativa más económica consiste en reutilizar un ordenador que ya esté conectado permanentemente.
Puede ser una Raspberry Pi, un mini PC, un NAS que permita ejecutar WireGuard o directamente un servidor Linux. El dispositivo necesita permanecer encendido cuando se quiera utilizar la VPN desde fuera.
La ventaja es evidente: no existe una nueva cuota mensual de infraestructura. Además, cuando se está de viaje, el teléfono u ordenador puede salir a Internet utilizando la dirección IP de la conexión doméstica.
Hay, sin embargo, tres requisitos que pueden complicar la instalación:
- El router debe permitir redirigir un puerto UDP hacia el servidor.
- La conexión necesita una dirección accesible desde Internet.
- Si la IP cambia, resulta recomendable configurar DNS dinámico.
El principal problema es CG-NAT (Carrier-Grade NAT). Algunos proveedores comparten una dirección IPv4 pública entre varios clientes, por lo que el usuario no puede simplemente abrir el puerto 51820 de su router y esperar conexiones desde Internet.
En ese caso puede solicitarse una IP pública al operador, utilizar IPv6 si toda la arquitectura está correctamente preparada o trasladar WireGuard a un VPS.
Y un VPS puede resultar incluso más sencillo.
Un servidor VPN apenas necesita CPU y memoria para un uso personal. Por ejemplo, GINERNET ofrece actualmente VPS en Madrid desde 5 euros al mes en su configuración Intel, con IPv4 dedicada y 1 TB de tráfico, mientras su configuración Cloud S con AMD, 1 vCore, 1 GB de RAM y 10 GB NVMe cuesta 6 euros mensuales. El propio proveedor menciona las VPN entre los usos del plan básico.
Raiola Networks ofrece igualmente VPS KVM con IP europea dedicada y recursos garantizados, por lo que técnicamente puede utilizarse para este mismo propósito.
Para una empresa que quiera integrar la VPN en una infraestructura mayor puede recurrirse a un cloud público como Aire Cloud, o a otros proveedores de infraestructura europeos. En este escenario importa menos buscar el VPS absolutamente más barato y más disponer de una IP fija, suficiente transferencia, una buena red y la ubicación geográfica adecuada.
Una configuración mínima para uso personal puede ser:
| Escenario | Recursos razonables | Ventaja principal |
|---|---|---|
| Raspberry Pi / mini PC | 1 GB RAM | Sin nueva cuota mensual |
| VPS básico | 1 vCPU / 1 GB RAM | IP pública y servicio 24×7 |
| Cloud empresarial | Según tráfico | Redes privadas e integración con infraestructura |
| Servidor dedicado | Normalmente excesivo | Grandes volúmenes o muchos usuarios |
WireGuard consume pocos recursos. En una VPN personal el límite suele estar antes en el ancho de banda de la conexión que en la capacidad de cálculo.
Cómo instalar WireGuard en Ubuntu o Debian
En un servidor actualizado basado en Ubuntu o Debian basta con instalar las herramientas necesarias:
sudo apt update
sudo apt install wireguard qrencode -y
La instalación oficial de WireGuard utiliza precisamente apt install wireguard tanto en Ubuntu como en Debian.
Después conviene crear las claves utilizando permisos restrictivos:
sudo -i
cd /etc/wireguard
umask 077
wg genkey | tee server_private.key | wg pubkey > server_public.key
server_private.key nunca debería compartirse. La clave pública, por el contrario, será necesaria para configurar los clientes.
El siguiente paso es identificar la interfaz que conecta el servidor a Internet:
ip route show default
Un VPS puede responder, por ejemplo:
default via 185.xxx.xxx.1 dev ens3
En este caso la interfaz sería ens3.
Después hay que permitir que Linux reenvíe los paquetes que llegan desde WireGuard:
cat >/etc/sysctl.d/99-wireguard.conf <<EOF
net.ipv4.ip_forward=1
EOF
sysctl --system
Esto resulta preferible a añadir repetidamente líneas a /etc/sysctl.conf.
Crear la configuración del servidor
Puede utilizarse una red privada como 10.8.0.0/24. El servidor será 10.8.0.1.
El archivo /etc/wireguard/wg0.conf podría contener:
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = CLAVE_PRIVADA_DEL_SERVIDOR
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE
Hay que sustituir ens3 por la interfaz real.
En sistemas administrados mediante nftables puede implementarse la misma función de NAT directamente con nftables. Aunque iptables sigue siendo una forma muy extendida y sencilla para una guía básica, en despliegues empresariales conviene integrar las reglas con el sistema de firewall que ya utilice el servidor.
El archivo contiene la clave privada, así que debe protegerse:
chmod 600 /etc/wireguard/wg0.conf
Después puede iniciarse:
systemctl enable --now wg-quick@wg0
Y comprobar su estado:
wg show
La documentación oficial también proporciona wg-quick precisamente para automatizar la creación y retirada de interfaces WireGuard.
El firewall y el router cambian según dónde esté el servidor
Si se utiliza UFW:
ufw allow 51820/udp
En un VPS con IPv4 pública esto puede ser prácticamente todo lo necesario, además de cualquier firewall que tenga el propio panel cloud.
En casa falta otro paso: entrar en el router y crear una redirección:
UDP 51820 → IP_LOCAL_SERVIDOR:51820
Por ejemplo:
UDP 51820 → 192.168.1.20:51820
Conviene asignar al servidor doméstico una IP local fija o una reserva DHCP.
Si la dirección pública cambia, puede configurarse un servicio de DNS dinámico y utilizar:
Endpoint = vpn.midominio.es:51820
en lugar de escribir una IP.
Añadir el primer teléfono
Cada dispositivo debe disponer de su propio par de claves. No conviene compartir una única clave privada entre todos.
En el servidor:
wg genkey | tee phone_private.key | wg pubkey > phone_public.key
El teléfono podría utilizar esta configuración:
[Interface]
Address = 10.8.0.2/32
PrivateKey = CLAVE_PRIVADA_DEL_TELEFONO
DNS = 1.1.1.1
[Peer]
PublicKey = CLAVE_PUBLICA_DEL_SERVIDOR
Endpoint = IP_O_DOMINIO_DEL_SERVIDOR:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
PersistentKeepalive = 25 es precisamente el intervalo que la documentación de WireGuard considera razonable cuando el cliente está detrás de NAT o un firewall.
En el servidor hay que añadir:
[Peer]
PublicKey = CLAVE_PUBLICA_DEL_TELEFONO
AllowedIPs = 10.8.0.2/32
Y aplicar la nueva configuración:
wg syncconf wg0 <(wg-quick strip wg0)
Para pasar cómodamente la configuración a Android o iPhone:
qrencode -t ansiutf8 < phone.conf
La aplicación oficial de WireGuard puede escanear directamente ese código.
Hay una corrección importante respecto a muchas guías que circulan por Internet: no debería añadirse ::/0 al cliente si el servidor solo está preparado para enrutar IPv4. De hacerlo existe riesgo de que IPv6 no funcione correctamente o se configure de forma inconsistente. Para tunelizar también IPv6 hay que asignar direcciones IPv6 al túnel, habilitar forwarding IPv6 y configurar adecuadamente el enrutamiento.
Split tunnel o enviar todo Internet por la VPN
WireGuard permite dos configuraciones muy diferentes.
Con:
AllowedIPs = 0.0.0.0/0
todo el tráfico IPv4 pasa por el servidor.
Es la opción adecuada para conectarse desde un aeropuerto, hotel o Wi-Fi pública y utilizar la VPN como salida a Internet.
Pero puede que únicamente se quiera entrar en la oficina o en casa. Entonces puede utilizarse:
AllowedIPs = 10.8.0.0/24, 192.168.1.0/24
Esto crea un split tunnel: solamente el tráfico dirigido a esas redes pasa por WireGuard; YouTube, navegación web y el resto de Internet siguen utilizando directamente la conexión del teléfono u ordenador.
Para acceso remoto corporativo suele ser una opción muy interesante.
Una VPN propia no equivale a una VPN comercial
Aquí aparece el principal matiz de la propuesta.
WireGuard proporciona un túnel cifrado entre el dispositivo y el servidor, pero instalarlo no convierte automáticamente al usuario en anónimo.
Con una VPN doméstica:
Móvil → túnel cifrado → casa → Internet
las páginas verán la IP doméstica.
Con un VPS:
Móvil → túnel cifrado → VPS → Internet
verán la IP del VPS.
Un proveedor comercial funciona de forma diferente porque miles de clientes pueden compartir direcciones de salida y normalmente permite cambiar de país con facilidad.
Por eso una VPN propia es especialmente buena para seguridad, acceso remoto, control y privacidad frente a redes Wi-Fi no confiables, pero no necesariamente para ocultarse entre miles de usuarios o simular presencia en decenas de países.
Tampoco es correcto afirmar simplemente que «no guarda logs». WireGuard por sí mismo no necesita mantener un historial de navegación, pero Linux, DNS, el proveedor del VPS, aplicaciones instaladas u otros componentes pueden generar registros. Que la infraestructura sea propia permite decidir qué registrar, pero hay que configurarlo.
Qué opción tiene más sentido
Para alguien con fibra, IP pública y un dispositivo encendido permanentemente, montar WireGuard en casa puede costar prácticamente 0 euros adicionales al mes, más la electricidad y la conexión que ya paga.
Para quien esté bajo CG-NAT, no quiera abrir puertos en casa o necesite disponibilidad permanente, un pequeño VPS probablemente sea más práctico. Un coste de 5-10 euros mensuales equivale a entre 60 y 120 euros al año, aunque el servidor también puede utilizarse para DNS privado, monitorización, bastion host u otros servicios.
GINERNET es una opción especialmente directa porque dispone de VPS con IPv4 propia en Madrid desde 5 euros mensuales y facturación por horas. Raiola Networks ofrece VPS KVM españoles, mientras Aire Cloud tiene más sentido cuando la VPN forma parte de una infraestructura cloud empresarial en lugar de tratarse simplemente de una salida a Internet personal.
También existen otros proveedores europeos y españoles. La elección debería hacerse por ubicación, dirección IP pública, transferencia incluida, conectividad y confianza en el proveedor, no por disponer de ocho CPU para un servicio que probablemente no vaya a necesitarlas.
Y esa es probablemente la principal ventaja de WireGuard: no hace falta una infraestructura complicada para tener una VPN bajo control propio. Un Linux pequeño, una IP alcanzable y unos minutos de configuración son suficientes para disponer de un túnel cifrado que puede seguir funcionando durante años sin depender de una suscripción VPN tradicional.
Preguntas frecuentes
¿Cuánto cuesta montar una VPN propia con WireGuard?
Si se utiliza un equipo doméstico ya encendido, el coste adicional puede ser prácticamente nulo aparte de electricidad y conectividad. En un VPS español existen opciones desde aproximadamente 5 euros al mes.
¿Funciona WireGuard si la conexión doméstica tiene CG-NAT?
No directamente mediante una simple redirección de puertos IPv4. Se puede solicitar una IP pública al operador, diseñar la conexión mediante IPv6 o utilizar un VPS con IP pública como servidor.
¿Una VPN propia hace anónimo al usuario?
No necesariamente. Los sitios visitados verán normalmente la IP pública de la vivienda o del VPS. Una VPN propia está especialmente indicada para cifrar conexiones, acceder a redes privadas y controlar la infraestructura.
¿Qué servidor necesita WireGuard?
Para pocos usuarios, 1 vCPU y 1 GB de RAM suelen ser más que suficientes. El ancho de banda disponible y el tráfico incluido son normalmente variables más importantes que la cantidad de CPU.