VPNSmith
self-host-vpn-headINFO

Auto-alojar VPN en Raspberry Pi 5: guía WireGuard completa 2026

Monta un VPN WireGuard en Raspberry Pi 5 en 2026: hardware, OS, config servidor, port forwarding, DuckDNS, clientes iOS/Android/Mac/Windows. El caudal está limitado por tu subida doméstica.

Por Eric Gerard · Fundador · VPNSmith - Especialista en VPN self-host y VPS GDPR11 min de lecturaPhoto : Alexandre Debiève - Unsplash

Un Raspberry Pi 5 8 GB es un excelente servidor WireGuard always-on. Espera un caudal del orden de tu subida doméstica (a menudo ~80 Mbps), un consumo en torno a 6-8W, y un coste total a 5 años muy por debajo de una sola suscripción anual a NordVPN. Esta guía te da cada comando, en orden, sin omisiones.

Para decidir si el Pi 5 es la elección correcta frente a un VPS cloud o Tailscale, empieza por nuestra comparativa de las mejores soluciones VPN auto-alojadas 2026.

Por qué Raspberry Pi 5 para un VPN doméstico

Precios revisados en octubre de 2026: la subida del coste de la memoria llevó el Raspberry Pi 5 de 8 GB de 80 $ en su lanzamiento a 175 $ de precio oficial (subidas anunciadas por Raspberry Pi el 2 de febrero y el 1 de abril de 2026, tras una primera en diciembre de 2025), y el modelo de 4 GB a 110 $. Un kit completo de 8 GB cuesta ahora unos 220 $. Frente a un VPS a 5,50 €/mes, descontando unos 11 €/año de electricidad del Pi, la amortización tarda unos 4 años (unos 3 años con una placa de 4 GB, suficiente para WireGuard + Pi-hole). Si ya tienes un Pi 4 o Pi 5 en un cajón, el servidor en casa sale casi gratis; si lo comprarías solo para el VPN, un Contabo Cloud VPS 4 a 5,50 €/mes (enlace de afiliado) cuesta menos durante los primeros años. Si prefieres un proveedor estadounidense con 30 días de devolución, el VPS Basic de Ultahost cuesta 5,52 $ al mes a 24 meses (1 GB de RAM, IPv4 dedicada, leído el 21 de octubre de 2026), suficiente para un servidor WireGuard de pocos dispositivos.

Pero el coste no es la única razón. Argumentos concretos para elegir un Pi sobre un VPS:

  • Control total del hardware y los logs - Nada sale de tu casa. Un VPS, aunque esté cifrado, implica un proveedor gestionando el hipervisor.
  • Acceso LAN nativo - Desde tu conexión VPN accedes a tu NAS, impresoras y cámaras IP directamente por IP local. Imposible con un VPS.
  • Coinstalación Pi-hole - Bloqueo de anuncios por DNS para todos tus dispositivos móviles, en cualquier parte del mundo. Una lista de bloqueo típica elimina una parte significativa de las consultas DNS (la cifra exacta se muestra en el dashboard de Pi-hole).
  • Aprendizaje práctico de redes - La mejor forma de entender NAT, IP forwarding, PKI y WireGuard es configurarlo todo uno mismo.

Limitaciones honestas: dependes de la conectividad doméstica y la electricidad. Para un VPN crítico en viajes de trabajo, consulta la sección de mantenimiento.

Hardware necesario

Esta es una configuración de hardware típica para este montaje, con precios indicativos en EUR de principios de 2026:

ComponenteModeloPrecio indicativo
Raspberry Pi 58 GB RAM (recomendado)175 $ precio oficial, oct. 2026 (4 GB: 110 $)
AlimentadorUSB-C 27W oficial (PI-PSU)~12 €
microSDSanDisk Extreme 32 GB UHS-I~12 €
Carcasa + disipadorArgon NEO 5 o carcasa oficial + Active Cooler~15-20 €
Cable EthernetCat 5e/6, 2 m~5 €
Total~220 $ una sola vez (~155 $ con 4 GB)

¿Por qué 8 GB de RAM? Si coinstalar Pi-hole + eventualmente Nextcloud o Home Assistant, 4 GB puede ser justo. Con 8 GB tienes margen para 3 años de evolución del setup.

¿Por qué la alimentación oficial de 27W? El Pi 5 bajo carga VPN + Pi-hole puede consumir hasta 12W en el rail USB-C. Una alimentación barata de 15W provoca throttling silencioso del CPU (bajo voltaje). La oficial garantiza voltaje estable.

Ethernet obligatorio: nunca pongas un servidor VPN en WiFi. La latencia adicional (2-5 ms) y las microdesconexiones WiFi desestabilizan el túnel. Cable directo al router.

Configuración del OS - Raspberry Pi OS 64-bit

Filas de servidores en un centro de datos
Filas de servidores en un centro de datos

Flash de la tarjeta

  1. Descargar Raspberry Pi Imager (Windows/Mac/Linux)
  2. Seleccionar Raspberry Pi OS Lite 64-bit (Bookworm - Debian 12) - no hace falta escritorio
  3. Hacer clic en el icono de engranaje (opciones avanzadas):
    • Hostname: vpn-pi
    • Activar SSH: clave pública (pegar tu ~/.ssh/id_ed25519.pub)
    • Usuario: eric (no pi, desactivado por defecto desde 2022)
    • Locale: tu zona horaria, distribución de teclado correcta
  4. Flashear en la microSD. Insertar en el Pi, conectar Ethernet, encender.

Primer acceso SSH e IP estática

# Desde tu Mac/PC, encontrar el Pi en la red local
ssh eric@vpn-pi.local

# IP estática en /etc/dhcpcd.conf
sudo nano /etc/dhcpcd.conf

Añadir al final del archivo:

interface eth0
static ip_address=192.168.1.10/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1
sudo reboot
# Reconectar con IP fija:
ssh eric@192.168.1.10

Firewall UFW

sudo apt install -y ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp          # SSH (cambiar si modificas el puerto)
sudo ufw allow 51820/udp       # WireGuard
sudo ufw enable
sudo ufw status verbose

Instalación de WireGuard

¿Prefiere no copiar las claves a mano? Nuestro generador de configuración WireGuard gratuito escribe el wg0.conf de la Pi y una configuración por cliente (con código QR para los móviles) en un minuto, con las claves generadas en su navegador y sin enviarlas a ningún sitio. Ponga como endpoint su nombre DuckDNS (se configura más abajo), compruebe que eth0 en su línea PostUp coincide con la interfaz de la Pi y retome la guía en el paso de reenvío IP y arranque. El generador es gratis hasta 10 dispositivos; a partir de ahí, WireGuard Pro (producto propio, 9 EUR en un solo pago, sin suscripción) sube el límite a 250 y añade un ZIP con cada .conf de cliente y su código QR en PNG, práctico para equipar una oficina o una familia entera de una vez.

Genera aquí tus configuraciones WireGuard

Escribe la dirección del servidor, elige el número de dispositivos y escanea cada código QR desde la app.

Todas las claves se generan en tu navegador (Curve25519 / X25519). Nada se envía a nuestros servidores - tu config es 100% privada.

WireGuard Pro

Todas tus configs en un solo ZIP

Se acabó descargar cliente por cliente: hasta 250 archivos .conf, cada uno con su código QR. Hasta 10 dispositivos sigue gratis, sin cuenta.

9 EUR

pago único, sin suscripción

Desbloquear Pro, 9 EURReembolso en 14 días
wireguard-configs.zipejemplo para 250 clientes
wg0.conf
client1.conf
client1-qr.png
client2.conf
+ 497 archivos más

Opcional. Indica la subred local detrás del servidor y/o detrás de un cliente que hace de pasarela de sitio (un router, una Raspberry Pi, un NAS). El generador añade cada red a los AllowedIPs del servidor, da a cada par las rutas hacia las otras redes y escribe las reglas de reenvío en las pasarelas. Deja un campo vacío para un cliente normal.

Paquetes y generación de claves

sudo apt update && sudo apt upgrade -y
sudo apt install -y wireguard qrencode

# Generar claves del servidor
wg genkey | sudo tee /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.key
sudo chmod 600 /etc/wireguard/server_private.key

# Mostrar claves
SERVER_PRIVKEY=$(sudo cat /etc/wireguard/server_private.key)
SERVER_PUBKEY=$(sudo cat /etc/wireguard/server_public.key)
echo "Privada: $SERVER_PRIVKEY"
echo "Pública: $SERVER_PUBKEY"

Configuración del servidor wg0.conf

sudo nano /etc/wireguard/wg0.conf
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = <SERVER_PRIVKEY>

# NAT - reemplaza eth0 con tu interfaz (verificar con: ip route | grep default)
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

IP Forwarding y arranque

# Activar IP forwarding
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

# Iniciar WireGuard
sudo systemctl enable --now wg-quick@wg0
sudo wg show  # debe mostrar la interfaz wg0 activa

Configuración de red - router, DuckDNS, MTU

Port forwarding en el router

Cada ISP tiene una interfaz diferente, pero la regla es la misma: UDP, puerto externo 51820 → IP local 192.168.1.10, puerto interno 51820.

Probar desde otra red (4G móvil): nc -zvu TU_IP_PUBLICA 51820.

¿Puerto abierto pero la prueba sigue fallando? Compruebe el CGNAT

Muchas conexiones de fibra, cable y 4G/5G ya no le dan una IPv4 pública propia: el operador comparte una dirección entre varios clientes (CGNAT), y ninguna regla en su router puede abrir un puerto que está detrás del NAT del operador. Mire la dirección WAN en la página de estado del router: si empieza por 100.64 a 100.127, o no coincide con lo que muestra curl -4 ifconfig.me desde un equipo de casa, está detrás de un CGNAT. Nuestro verificador de puerto WireGuard gratuito hace esa comparación en su navegador.

Tres salidas: pedir una IPv4 pública al operador (algunos lo hacen gratis, muchos no), conectarse por IPv6 si su línea lo tiene (falla en el Wi-Fi de hoteles y en redes móviles sin IPv6), o instalar el servidor WireGuard en un VPS pequeño con su propia IPv4 pública y dejar que la Pi se conecte a él como cliente con PersistentKeepalive = 25, para seguir llegando a la red de casa. Ese relé se explica paso a paso en WireGuard detrás de CGNAT.

★ Datacenter Núremberg GDPR · ✓ IPv4 dedicada incluida · puerto de 200 Mbit/s

Una IPv4 pública siempre accesible para la Pi y sus móviles → Contabo Cloud VPS 45,50 €/mes (consultado el 18/10/2026, primeros 24 meses) · IPv4 pública fija · 4 vCPU, 8 GB de RAM→

El enlace de Contabo es un enlace de afiliado: si contrata a través de él recibimos una comisión, sin coste adicional para usted. El tráfico de internet sale entonces con la dirección del VPS, no con la de casa, salvo que lo devuelva a través de la Pi.

DuckDNS - DNS dinámico gratuito

# Crear cuenta en duckdns.org, anotar tu token
# Crear el script de actualización
mkdir -p ~/duckdns
cat > ~/duckdns/duck.sh <&lt; 'EOF'
#!/bin/bash
echo url="https://www.duckdns.org/update?domains=mivpn&token=TU_TOKEN&ip=" | curl -k -o ~/duckdns/duck.log -K -
EOF
chmod +x ~/duckdns/duck.sh

# Cron cada 5 minutos
(crontab -l 2>/dev/null; echo "*/5 * * * * ~/duckdns/duck.sh >/dev/null 2>&1") | crontab -

Optimización de MTU

WireGuard usa por defecto MTU 1420. Si ves paquetes fragmentados:

# Test de fragmentación
ping -M do -s 1392 8.8.8.8

# Si falla, añadir en [Interface] de wg0.conf:
# MTU = 1380

Para el detalle completo de plantillas WireGuard y casos de MTU, consulta nuestra guía de plantillas de configuración WireGuard.

Configuración de clientes - Mac, Windows, iOS, Android

Generar una config de cliente

# En el servidor, para cada cliente:
CLIENT_PRIVKEY=$(wg genkey)
CLIENT_PUBKEY=$(echo $CLIENT_PRIVKEY | wg pubkey)

cat <&lt; EOF
[Interface]
PrivateKey = $CLIENT_PRIVKEY
Address = 10.8.0.2/32
DNS = 10.8.0.1

[Peer]
PublicKey = $SERVER_PUBKEY
Endpoint = mivpn.duckdns.org:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
EOF

Añadir el cliente al servidor:

sudo wg set wg0 peer $CLIENT_PUBKEY allowed-ips 10.8.0.2/32
sudo wg-quick save wg0  # persiste la configuración

Código QR para iOS y Android

# Guardar la config del cliente en un archivo
cat > /tmp/client1.conf <&lt; 'EOF'
[Interface]
PrivateKey = CLIENT_PRIVKEY_AQUI
Address = 10.8.0.2/32
DNS = 10.8.0.1

[Peer]
PublicKey = SERVER_PUBKEY_AQUI
Endpoint = mivpn.duckdns.org:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
EOF

# Mostrar código QR en el terminal
qrencode -t ansiutf8 &lt; /tmp/client1.conf

# Eliminar tras escanear (no dejar claves privadas a la vista)
rm /tmp/client1.conf

Escanear con la app oficial WireGuard (iOS App Store / Google Play). La conexión se establece en <2 segundos.

macOS y Windows: descargar la app oficial WireGuard e importar el archivo .conf directamente.

Para comparar con la alternativa Tailscale que elimina toda esta configuración manual, lee la guía de exit node Tailscale. Y para entender cómo Cloudflare WARP se compara con tu configuración Pi, consulta WARP vs WireGuard self-host.

Optimizaciones y mantenimiento

Actualizaciones de seguridad automáticas

sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades
# Elegir "Sí" para activar las actualizaciones de seguridad automáticas

Monitoreo con journalctl

# Logs WireGuard en tiempo real
sudo journalctl -u wg-quick@wg0 -f

# Ver peers conectados y estadísticas
sudo wg show

# Tráfico por peer (bytes recibidos/enviados)
sudo wg show all dump

fail2ban contra escaneos SSH

sudo apt install -y fail2ban

cat | sudo tee /etc/fail2ban/jail.local <&lt; 'EOF'
[sshd]
enabled = true
port = 22
maxretry = 3
bantime = 3600
findtime = 600
EOF

sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd

Backup de la configuración WireGuard

# Backup semanal automático a USB o NAS local
(crontab -l; echo "0 3 * * 0 sudo cp -r /etc/wireguard ~/backup/wg-$(date +%Y%m%d)") | crontab -

Swap si usas 4 GB de RAM

Si usas el modelo de 4 GB con Pi-hole + WireGuard activos:

sudo dphys-swapfile swapoff
sudo nano /etc/dphys-swapfile  # Establecer CONF_SWAPSIZE=1024
sudo dphys-swapfile setup
sudo dphys-swapfile swapon

Monitorear la temperatura

Comprueba la temperatura bajo tu propia carga. Sin carcasa ni disipador un Pi 5 se calienta bastante más - el throttling del CPU comienza a 80°C, así que se recomienda un disipador o carcasa.

# Temperatura en tiempo real
watch -n 2 vcgencmd measure_temp

Para una visión completa de la configuración de red avanzada que necesitarás al ejecutar varios clientes simultáneos, consulta nuestra guía VPN multi-cliente Contabo con WireGuard - los conceptos NAT son idénticos en Pi.

Para tener lo esencial a mano: la WireGuard Cheat Sheet gratuita (PDF de 5 páginas en inglés, descarga directa, sin registro) reúne las tablas de keepalive y MTU, los comandos wg genkey/wg pubkey/wg genpsk y las cuatro comprobaciones de servidor en una línea que conviene lanzar primero cuando un túnel no pasa tráfico. El WireGuard Self-Hosting Kit de pago (9 USD, en inglés) añade una lista de diagnóstico de 12 causas y 11 plantillas de configuración.


Qué esperar: un caudal del orden de tu subida doméstica, una latencia añadida de pocos milisegundos en el lado LAN, un consumo de ~6-8W, y buena seguridad con fail2ban y SSH solo por clave. Un punto a anticipar: un corte eléctrico en casa tira el túnel - un SAI pequeño (p. ej. APC 500VA) lo mantiene durante los microcortes.

Para conectar tus pares rápidamente, nuestro generador de configuración de WireGuard gratuito crea una configuración de servidor y cliente coherente en tu navegador, lista para copiar en la Pi.

★ Datacenter Núremberg GDPR · ✓ IPv4 dedicada incluida · puerto de 200 Mbit/s

Aloja tu VPN en tu propio VPS → ContaboAcceso root completo · IPv4 pública · elige tu región→

Preguntas frecuentes

¿Qué ancho de banda real se puede esperar de un VPN en Raspberry Pi 5?
En un Pi 5 8 GB con una conexión de fibra doméstica típica, el cuello de botella es la subida de la conexión, no el Pi. Espera un caudal del orden de tu upstream (p. ej. ~80 Mbps en una subida de 80-100 Mbps). La CPU del Pi 5 rara vez es el límite a las velocidades de una subida doméstica. Ejecuta iperf3 a través del túnel para encontrar tu propio techo.
¿Cómo proteger SSH contra ataques de fuerza bruta?
Tres medidas obligatorias: 1) Deshabilitar PasswordAuthentication en sshd_config (solo claves SSH). 2) Cambiar el puerto SSH del 22 a uno no estándar (ej. 2222). 3) Instalar fail2ban con jail SSH: maxretry 3, bantime 1h. Con login solo por clave y fail2ban, los intentos SSH automatizados permanentes que recibe todo host expuesto nunca llegan a autenticarse.
¿Qué pasa si se va la luz en casa?
El VPN se cae durante el corte - esa es la limitación fundamental frente a un VPS cloud. Soluciones: SAI de 30-60 minutos para microcortes (~30 € para un APC Back-UPS 500). Para un VPN de misión crítica, mantén un VPS Contabo a 5,50 €/mes como respaldo - ver nuestra [guía VPN auto-alojado en Contabo](/es/blog/auto-alojar-vpn-contabo-wireguard-2026).
Pi 5 vs Pi 4 para WireGuard, ¿qué diferencia hay?
El Pi 5 (Cortex-A76 a 2.4 GHz) tiene una CPU claramente más rápida que el Pi 4 (Cortex-A72 a 1.8 GHz), así que su techo con WireGuard es más alto. Con una subida doméstica modesta, el enlace es el cuello de botella y un Pi 4 que ya tengas es suficiente. Para una línea simétrica rápida, el Pi 5 es la opción más segura. Mide con iperf3 en lugar de fiarte de una cifra genérica.
¿Cuál es el consumo eléctrico real?
Un Pi 5 8 GB consume típicamente alrededor de 5-6W en reposo y 7-8W bajo carga WireGuard + Pi-hole (mide el tuyo con un enchufe inteligente). En un año: ~65 kWh, unos 10-12 € en electricidad. Un Contabo Cloud VPS 4 cuesta 66 €/año, así que el Pi ahorra unos 55 € al año, pero desde las subidas de 2026 por la memoria la placa de 8 GB sola cuesta 175 $ de precio oficial (unos 220 $ el kit): tarda unos 4 años en amortizarse, unos 3 años con una placa de 4 GB. Si ya tienes un Pi, gana en coste desde el primer día.
¿Puedo ejecutar Pi-hole y WireGuard juntos?
Sí, es una combinación clásica. Pi-hole escucha en 53/UDP/TCP localmente, WireGuard enruta el DNS de los clientes hacia 10.8.0.1 (el Pi). Cada cliente VPN obtiene el bloqueo de anuncios de Pi-hole. La única restricción: asignar 512 MB de RAM a Pi-hole. Con 4 u 8 GB en el Pi 5, es completamente manejable.
¿Necesito IP fija de mi ISP?
No. DuckDNS resuelve esto gratuitamente. El cron cada 5 minutos actualiza el DNS cuando cambia tu IP. La frecuencia con la que cambia la IP depende de tu ISP. El tiempo de caída máximo es de 5 minutos - aceptable para un VPN doméstico.
¿Es WireGuard en Pi 5 tan seguro como un servicio VPN comercial?
La criptografía es idéntica (Curve25519, ChaCha20-Poly1305, BLAKE2s) - WireGuard está auditado y se usa en producción en miles de empresas. La diferencia: gestionas tú mismo las actualizaciones y el hardening SSH. Con fail2ban, UFW y solo claves SSH, la superficie de ataque es mínima. Lo que pierdes vs uno comercial: no hay kill switch nativo en clientes Windows (configurar manualmente) y no hay multi-servidor geográfico.