Tutoriales · 4 min de lectura

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 sudo en 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 = 25 en 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.

Volver a Tutoriales