Saltar al contenido
homelab@casa:~/servidor
~$homelabista

// VPN CASERA

Cómo montar una VPN en casa con WireGuard (2026)

Monta tu propia VPN en casa con WireGuard: para qué sirve, cómo se compara con OpenVPN y Tailscale, y en qué mini PC o Raspberry Pi alojarla.

9 min de lecturaGonzalo
  • #vpn-casera
  • #wireguard
  • #acceso-remoto
  • #raspberry-pi
Montar una VPN en casa con WireGuard: un túnel cifrado desde el móvil fuera de casa hasta tu red local, servido desde un mini PC o una Raspberry Pi de bajo consumo

Estás en la calle, quieres entrar al panel de Home Assistant o abrir un archivo del NAS, y te chocas con la pared: tu servidor vive en tu red local y desde fuera, sencillamente, no existe. La tentación es abrir un puerto en el router y publicarlo en internet. No lo hagas. Eso es dejar la puerta de casa entornada para que la empuje el primer bot que pase.

La respuesta razonable es montarte tu propia VPN: un túnel cifrado que te mete dentro de tu red como si estuvieras en el sofá. Y lo que casi nadie cuenta es lo poco que pesa tenerla. El contenedor que me la sirve gasta esto:

$ docker stats wg-easy --no-stream
NAME      MEM USAGE / LIMIT     CPU %
wg-easy   7.477MiB / 15.4GiB    0.00%

Siete megas y medio de RAM. Cero de CPU en reposo. Sobre esa base vamos a montarlo bien.

[aff]Hay enlaces de afiliado más abajo: si compras algo desde ellos me llevo una pequeña comisión y a ti no te cuesta ni un céntimo más. En calidad de Afiliado de Amazon, obtengo ingresos por las compras adscritas que cumplen los requisitos aplicables.

Para qué sirve de verdad una VPN en casa

Olvídate por un momento del anuncio de la VPN comercial que te promete anonimato. Eso es otra cosa. Una VPN casera no te esconde: te devuelve el acceso a lo tuyo desde cualquier sitio, sin exponerlo al mundo.

Dos usos que justifican la tarde de montarla. El primero, acceso remoto a tus trastos: entras al NAS, a la domótica o a las cámaras desde el móvil estando fuera, y para tu red es como si estuvieras en casa. Nada de abrir un puerto por servicio ni de andar exponiendo paneles de administración a internet. El segundo, salir por tu conexión cuando estás en una wifi ajena: el wifi del hotel o del aeropuerto deja de ver lo que haces porque todo tu tráfico se va cifrado hasta tu router antes de tocar la red.

Hay más, pero con esos dos ya te compensa. Yo la uso sobre todo para lo primero.

WireGuard, OpenVPN o Tailscale: cuál elegiría

Aquí me mojo, que para eso llevo años peleándome con esto.

WireGuard es lo que montaría hoy sin pensarlo. Vive dentro del kernel de Linux (lsmod | grep wireguard y ahí está el módulo cargado), su configuración cabe en veinte líneas y las conexiones se levantan al instante, sin el baile de certificados de otras épocas. Es rápido y es aburrido, en el buen sentido: lo montas y se olvida.

OpenVPN es el veterano. Funciona y funciona en todas partes, pero arrastra dos décadas de complejidad: certificados, ficheros de configuración kilométricos, más CPU por paquete. Si no tienes una razón heredada para usarlo (un router viejo que solo habla OpenVPN, un proveedor que te lo impone), yo no empezaría un proyecto nuevo con él en 2026.

Tailscale merece una mención honesta porque es comodísimo: se apoya en WireGuard por debajo pero te ahorra abrir puertos y pelearte con la IP de casa. El matiz que no siempre te cuentan: la coordinación pasa por los servidores de un tercero. Para la mayoría es un intercambio razonable, y si tu operador te lo pone difícil (ahora vemos por qué) puede ser tu salvavidas. Pero si el objetivo es tener tu infraestructura, sin depender de nadie, WireGuard puro en tu propia máquina es más soberano. Ahí está mi sesgo, y lo asumo.

Arquitectura de una VPN casera con WireGuard: el móvil fuera de casa cruza internet cifrado por el puerto UDP redirigido en el router hasta el servidor VPN en un mini PC o Raspberry Pi, que da acceso a la red local con NAS, Home Assistant y multimedia
El camino de un paquete cuando entras a tu red desde la calle. Solo un puerto abierto, y encima cifrado.

Dónde la alojas: router, Raspberry Pi o mini PC

El servidor VPN tiene que estar encendido siempre para que puedas entrar cuando te haga falta, así que lo que importa es el consumo, no la potencia. Cifrar el tráfico de una o dos personas no cansa a nada de este siglo.

Tu router, si ya trae WireGuard. Algunos routers decentes y casi cualquiera con OpenWrt lo llevan. Es la opción de cero equipos extra. La pega es que la gestión suele ser tosca y no siempre puedes dirigir el tráfico como quieres. Para empezar, vale.

Una Raspberry Pi dedicada. Es lo que recomendaría a quien parte de cero y solo quiere la VPN. Un kit de Raspberry Pi 5 gasta una miseria encendido, corre WireGuard sobre el mismo módulo del kernel que un servidor grande y te deja una cajita silenciosa dedicada solo a esto. Si te planteas la Pi como servidor de verdad, lo desarrollo en la guía de la Raspberry Pi 5 como servidor.

Un mini PC que ya tengas corriendo cosas. Es mi caso, y probablemente el más eficiente: si ya tienes una máquina 24/7 con Docker, la VPN es un contenedor más de 7,5 MiB, no un equipo nuevo. Un Beelink S12 Pro con Intel N100, o el Beelink ME Mini con N150 si además quieres montarle discos y que haga de NAS, mueven esto sin enterarse mientras siguen con lo suyo. Si andas eligiendo equipo, en el comparador de mini PC puedes filtrar por consumo, y en la guía del servidor casero barato y de bajo consumo está la cuenta de lo que cuesta tenerlo enchufado todo el año.

No compres una máquina para la VPN si ya tienes una encendida. Sería tirar el dinero y sumar otro cacharro al armario.

Cómo la tengo montada: WireGuard en Docker con wg-easy

WireGuard a pelo se configura editando ficheros y generando claves a mano. Se puede, y no es difícil, pero para dar de alta el móvil, el portátil y el de tu pareja tirando de código QR, wg-easy te ahorra el trabajo sucio con un panel web. Por debajo sigue siendo WireGuard puro. Este es el docker-compose.yml con el que corre, con los datos sensibles cambiados por marcadores:

services:
  wg-easy:
    image: ghcr.io/wg-easy/wg-easy
    container_name: wg-easy
    environment:
      - WG_HOST=vpn.tudominio.com          # tu DNS dinámico (ver más abajo)
      - PASSWORD_HASH=<hash-del-panel>     # para entrar a la web de gestión
      - WG_DEFAULT_ADDRESS=10.9.0.x        # subred interna de la VPN
      - WG_DEFAULT_DNS=192.168.x.x         # un resolver de TU red, no el del cliente
      - WG_ALLOWED_IPS=0.0.0.0/0, ::/0     # todo el tráfico por el túnel
    volumes:
      - /srv/stacks/wg-easy:/etc/wireguard
    ports:
      - "51820:51820/udp"                  # el túnel; este es el que se abre en el router
      - "51821:51821/tcp"                  # panel web, déjalo SOLO accesible en la LAN
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    sysctls:
      - net.ipv4.ip_forward=1
      - net.ipv4.conf.all.src_valid_mark=1
    restart: unless-stopped

Lo levantas con docker compose up -d, entras al panel en http://<ip-del-servidor>:51821, creas un cliente y te sale un QR. Lo escaneas con la app de WireGuard del móvil y ya está dentro. La imagen es minúscula (Alpine Linux 3.22, wireguard-tools v1.0.20250521), por eso el contenedor apenas roza los 7,5 MiB de antes.

Panel web de wg-easy con un cliente ficticio llamado Portátil de pruebas y una dirección privada de demostración
El panel de wg-easy con un cliente ficticio. La captura sale de una instancia temporal y aislada: no contiene claves, códigos QR ni datos de la VPN doméstica.

Un apunte que suelo aclarar: el WG_ALLOWED_IPS=0.0.0.0/0 de arriba manda todo tu tráfico por el túnel (útil en la wifi del hotel). Si solo quieres llegar a tu red local y dejar que el resto de internet salga normal por el móvil, ahí pones únicamente tu subred (por ejemplo 192.168.1.0/24) y ganas batería. Es la diferencia entre túnel completo y túnel dividido, y la eliges tú según para qué la uses.

El detalle que te va a tocar pelear: la puerta de casa

Montar el contenedor es lo fácil. Lo que de verdad enreda a la gente es que tu casa tiene que ser localizable desde fuera, y ahí hay dos frentes.

Uno: la IP de tu casa cambia. La mayoría de conexiones domésticas tienen IP dinámica, así que hoy es una y mañana otra. La solución es un DNS dinámico (DDNS): un nombre fijo tipo vpn.tudominio.com que apunta siempre a tu IP actual, se actualice sola. Muchos routers lo traen; si no, un contenedorcito que refresca el registro cada pocos minutos lo resuelve. Ese nombre es el que va en WG_HOST.

Dos: el router tiene que dejar entrar el túnel. Hay que redirigir el puerto 51820/udp hacia el servidor VPN (port forwarding, en tu router). Solo ese, y solo UDP.

Y aquí el aviso que te ahorra una tarde de frustración: si tu operador te tiene detrás de CGNAT (IP compartida entre varios clientes, cada vez más común con IPv4 agotada), el port forwarding no te va a funcionar por mucho que lo configures bien, porque la IP pública no es tuya del todo. Cómo saberlo rápido: si la IP que ves en el router no coincide con la que te dice una web tipo “cuál es mi IP”, tienes papeletas. Ahí es donde Tailscale o un túnel de Cloudflare dejan de ser comodidad y pasan a ser la única vía. A mí me tocó descartarlo en un sitio por esto; no es teoría.

El fallo que sí cometí yo la primera vez fue más tonto y más típico: conectaba el móvil, el túnel levantaba, pero no cargaba nada por nombre. Ping a las IP directas, bien; abrir homeassistant.local, nada. Era el DNS. Sin un WG_DEFAULT_DNS que apunte a un resolver de tu red, el cliente no sabe resolver los nombres internos de casa. Lo apuntas al DNS de tu red local y los nombres vuelven a la vida. Media hora mirando el móvil como un pasmarote por una línea de config.

Entonces, ¿por dónde empiezo?

Si es tu primera VPN y solo la quieres para entrar a tus cosas: WireGuard con wg-easy sobre lo que ya tengas encendido, o una Raspberry Pi si partes de cero. Túnel dividido a tu subred, DDNS, un puerto UDP abierto y listo.

Si tu operador te mete en CGNAT: no te pelees con el router, tira de Tailscale y ahórrate el drama.

Y si lo que buscas es el equipo donde alojarla junto al resto del homelab, la elección va por consumo antes que por potencia. Esa cuenta la tienes hecha en el comparador de mini PC por consumo y en los mejores mini PC para homelab. La VPN, te lo prometo, va a ser lo que menos gaste de todo lo que le montes encima.