Cómo configurar WireGuard en Debian 13
Introducción
WireGuard es un protocolo VPN rápido, moderno y criptográficamente sólido, integrado directamente en el kernel de Linux. A diferencia de alternativas más pesadas como OpenVPN o IPSec, WireGuard es ligero, sencillo de configurar y ofrece un rendimiento excelente, lo que lo convierte en la opción ideal para proteger el tráfico a través de tu VPS en AVS ISP.
Debian 13 «Trixie» (publicado el 9 de agosto de 2025) incluye soporte nativo de WireGuard en sus repositorios predeterminados, así que no hacen falta backports ni fuentes de terceros.
Requisitos previos
Antes de empezar, asegúrate de tener:
- Un VPS con Debian 13 (Trixie) de AVS ISP
- Acceso como root o mediante
sudoen el servidor - Una máquina local que hará de cliente WireGuard (Linux, Windows, macOS, Android, iOS)
- El puerto UDP 51820 abierto en el cortafuegos o grupo de seguridad de tu VPS en AVS ISP
Paso 1 — Actualizar el sistema
Conéctate a tu VPS por SSH y actualiza todos los paquetes:
apt update && apt upgrade -y
Paso 2 — Instalar WireGuard
WireGuard está en los repositorios predeterminados de Debian 13:
apt install -y wireguard wireguard-tools iptables
Comprueba la instalación:
wg --version
Paso 3 — Generar las claves del servidor
Fija un umask estricto para proteger los archivos de clave privada y genera el par de claves del servidor:
umask 077
wg genkey | tee /etc/wireguard/server.key | wg pubkey > /etc/wireguard/server.pub
Consulta y guarda tus claves:
cat /etc/wireguard/server.key # Clave privada del servidor (¡guárdala en secreto!)
cat /etc/wireguard/server.pub # Clave pública del servidor (se comparte con los clientes)
Paso 4 — Generar las claves del cliente
Genera un par de claves para el primer cliente directamente en el servidor:
wg genkey | tee /etc/wireguard/client.key | wg pubkey > /etc/wireguard/client.pub
cat /etc/wireguard/client.key # Clave privada del cliente
cat /etc/wireguard/client.pub # Clave pública del cliente
Paso 5 — Identificar tu interfaz de red
Averigua el nombre de la interfaz de red principal de tu VPS (normalmente eth0 o enp1s0):
ip address show
Apunta el nombre de la interfaz: lo necesitarás en el paso siguiente.
Paso 6 — Configurar el servidor WireGuard
Crea el archivo de configuración del servidor:
nano /etc/wireguard/wg0.conf
Pega lo siguiente, sustituyendo los valores de ejemplo:
[Interface]
# Dirección VPN del servidor
Address = 10.8.0.1/24
# Puerto UDP en el que escucha WireGuard
ListenPort = 51820
# Pega aquí la clave PRIVADA del servidor
PrivateKey = <SERVER_PRIVATE_KEY>
# Activa el reenvío de IP y el NAT al levantar el túnel
# Sustituye eth0 por tu interfaz de red real (por ejemplo, enp1s0)
PostUp = echo 1 > /proc/sys/net/ipv4/ip_forward; \
iptables -A FORWARD -i wg0 -j ACCEPT; \
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = echo 0 > /proc/sys/net/ipv4/ip_forward; \
iptables -D FORWARD -i wg0 -j ACCEPT; \
iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
# ── Peer (cliente) ─────────────────────────────────────────
[Peer]
# Pega aquí la clave PÚBLICA del cliente
PublicKey = <CLIENT_PUBLIC_KEY>
# Dirección VPN asignada a este cliente
AllowedIPs = 10.8.0.2/32
Guarda y cierra (Ctrl+O, Enter, Ctrl+X).
Paso 7 — Hacer permanente el reenvío de IP
Edita /etc/sysctl.conf para que el reenvío de IP sobreviva a los reinicios:
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
Paso 8 — Arrancar WireGuard y activarlo al inicio
Arranca el servicio de WireGuard y actívalo en el arranque:
systemctl start wg-quick@wg0
systemctl enable wg-quick@wg0
Comprueba que la interfaz está levantada:
wg show
ip address show wg0
Deberías ver la interfaz wg0 con la dirección 10.8.0.1.
Paso 9 — Configurar el cliente
En tu máquina cliente, crea un archivo de configuración de WireGuard
(por ejemplo, wg0.conf, o impórtalo en la aplicación de WireGuard):
[Interface]
# Dirección VPN del cliente
Address = 10.8.0.2/32
# Clave PRIVADA del cliente (generada en el paso 4)
PrivateKey = <CLIENT_PRIVATE_KEY>
# Opcional: usar el VPS como resolutor DNS
# DNS = 10.8.0.1
[Peer]
# Clave PÚBLICA del servidor (del paso 3)
PublicKey = <SERVER_PUBLIC_KEY>
# IP pública de tu VPS en AVS ISP y puerto de WireGuard
Endpoint = <YOUR_VPS_PUBLIC_IP>:51820
# Enrutar TODO el tráfico por la VPN
# Para túnel dividido (solo la subred de la VPN), usa: 10.8.0.0/24
AllowedIPs = 0.0.0.0/0, ::/0
# Mantener viva la conexión a través de cortafuegos con NAT
PersistentKeepalive = 25
Levanta el túnel en el cliente:
# Cliente Linux
wg-quick up wg0
En Windows / macOS / Android / iOS, importa el archivo de configuración o el código QR en la aplicación oficial de WireGuard.
Paso 10 — Abrir el puerto en el cortafuegos
Si tu VPS en AVS ISP tiene un cortafuegos local ufw o iptables, permite el puerto UDP 51820:
# Con ufw
ufw allow 51820/udp
ufw reload
# Directamente con iptables
iptables -A INPUT -p udp --dport 51820 -j ACCEPT
Comprueba también que el puerto está abierto en el panel de control de AVS ISP, en los ajustes de cortafuegos o grupo de seguridad de tu VPS.
Paso 11 — Verificar la conexión
En el cliente, levanta el túnel y comprueba la conectividad:
wg-quick up wg0
ping 10.8.0.1 # Ping a la pasarela del servidor VPN
curl https://ifconfig.me # Debería devolver la IP pública de tu VPS en AVS ISP
En el servidor, confirma las sesiones de peers activas:
wg show
Deberías ver el peer en la lista con una marca reciente en latest handshake.
Añadir más clientes
Para cada cliente adicional, repite los pasos 4 y 9 y añade un nuevo bloque [Peer]
a /etc/wireguard/wg0.conf en el servidor:
[Peer]
PublicKey = <NEW_CLIENT_PUBLIC_KEY>
AllowedIPs = 10.8.0.3/32
Recarga WireGuard sin cortar las conexiones existentes:
wg addconf wg0 <(wg-quick strip wg0)
# o reinicia el servicio
systemctl restart wg-quick@wg0
Comandos útiles
| Acción | Comando |
|---|---|
| Ver el estado del túnel | wg show |
| Arrancar el túnel | systemctl start wg-quick@wg0 |
| Parar el túnel | systemctl stop wg-quick@wg0 |
| Reiniciar el túnel | systemctl restart wg-quick@wg0 |
| Ver los registros de WireGuard | journalctl -u wg-quick@wg0 -f |
| Comprobar el módulo del kernel | lsmod | grep wireguard |
Consejos de seguridad
- No compartas nunca tus claves privadas. Entre peers solo se intercambian las públicas.
- Restringe el acceso SSH a una IP concreta o permite solo la autenticación por clave.
- Plantéate cambiar el puerto predeterminado de WireGuard (51820) por otro puerto UDP no estándar para reducir el ruido de los escáneres de puertos.
- Rota los pares de claves de vez en cuando en despliegues de larga duración.
- Usa
PersistentKeepalive = 25en los clientes que estén detrás de NAT para que no se caiga la sesión.
Guía escrita para clientes de VPS de AVS ISP con Debian 13 «Trixie». WireGuard® es una marca registrada de Jason A. Donenfeld.