Sin KYC · DMCA ignorado · sin logs. Paga con criptomonedas: BTC, USDT, USDC, ETH, SOL, LTC, XMR
Idioma: Español
Despliega un VPS

Guía · WireGuard en Debian y Ubuntu

¿Cómo configuro WireGuard en un VPS?

Todos los comandos para un servidor VPN WireGuard en Debian 12 o Ubuntu 24.04: paquetes, claves, archivos de servidor y cliente, reenvío de IP, NAT y una primera conexión.

Última actualización: · 8 min de lectura

Respuesta rápida

¿Cómo configuro WireGuard en un VPS?

Para configurar WireGuard en un VPS, instala el paquete wireguard, genera un par de claves para el servidor y uno por dispositivo, y escribe /etc/wireguard/wg0.conf. Después activa el reenvío de IP y el NAT, inicia wg-quick@wg0 e importa el archivo del cliente. En OffshoreKVM, un VPS KVM con Debian 12 o Ubuntu 24.04 cuesta desde $3.08 por 30 días. Sin KYC, paga con criptomonedas.

¿Qué necesito antes de empezar?

ServidorUn VPS KVM con su propio kernel. OffshoreKVM KVM 1 (1 vCPU, 1 GB de RAM, 20 GB NVMe, 2 TB de tráfico) es suficiente para un hogar
AccesoAcceso root por SSH con tu propia clave pública; el inicio de sesión con contraseña está desactivado por defecto. Los comandos de abajo se ejecutan como root
SistemaDebian 12 o Ubuntu 24.04 LTS; ambas están entre las imágenes de OffshoreKVM
Paqueteswireguard y iptables, del repositorio propio de la distribución
PuertoUDP 51820, el puerto usado en los ejemplos de la documentación de WireGuard
Direcciones del túnel10.8.0.0/24: servidor 10.8.0.1, primer dispositivo 10.8.0.2
Aplicaciones clienteWireGuard para Windows, macOS, Android, iOS y Linux, listado en wireguard.com
PrecioKVM 1 $3.08, KVM 2 $4.92, KVM 4 $8.25, KVM 8 $13.50, KVM 16 $20.62 cada 30 días. Sin KYC, solo criptomonedas

¿Cómo configuro un servidor WireGuard, paso a paso?

Nueve pasos, desde un VPS con Debian 12 o Ubuntu 24.04 recién instalado hasta un móvil que navega a través de él.

  1. Conectar y actualizar

    Inicia sesión con ssh root@YOUR_VPS_IP y ejecuta apt update && apt upgrade -y.

  2. Instalar WireGuard e iptables

    Ejecuta apt install -y wireguard iptables. Las herramientas de WireGuard solo recomiendan un paquete de firewall, y las reglas NAT de abajo usan iptables.

  3. Generar las claves

    Ejecuta cd /etc/wireguard && umask 077. Haz que el servidor se empareje con wg genkey | tee server.key | wg pubkey > server.pub. Haz que el dispositivo se empareje con wg genkey | tee phone.key | wg pubkey > phone.pub.

  4. Encontrar la interfaz pública

    Ejecuta ip route show default. La palabra que sigue a dev, como eth0 o ens3, es la interfaz que necesita la regla NAT.

  5. Escribir el archivo del servidor

    Crea /etc/wireguard/wg0.conf con la clave privada del servidor, el puerto de escucha, las reglas NAT y un bloque [Peer] por dispositivo, como se muestra abajo.

  6. Activar el reenvío de IP

    Ejecuta echo 'net.ipv4.ip_forward=1' > /etc/sysctl.d/99-wireguard.conf && sysctl --system. Sin ello, el VPS descarta el tráfico del túnel.

  7. Iniciar el túnel al arrancar

    Ejecuta systemctl enable --now wg-quick@wg0 y luego wg show para ver la interfaz, su puerto y el peer.

  8. Crear e importar el archivo del cliente

    Escribe phone.conf como se muestra abajo. Impórtalo en la app de WireGuard, o muéstralo como código QR con qrencode -t ansiutf8 < /etc/wireguard/phone.conf.

  9. Probar el túnel

    Activa el túnel y abre cualquier sitio web. En el servidor, wg show ahora muestra un latest handshake reciente, y los sitios ven la dirección del VPS.

¿Qué va en el wg0.conf del servidor?

El archivo del servidor contiene la clave privada del servidor, su dirección de túnel, el puerto de escucha, las reglas NAT y un bloque [Peer] por dispositivo. El heredoc de abajo rellena ambas claves desde los archivos creados en el paso 3. Sustituye eth0 por la interfaz del paso 4 antes de ejecutarlo.

WireGuard identifica cada dispositivo por su clave pública: un paquete solo se acepta si está firmado por una clave conocida y proviene del AllowedIPs de ese peer.

Servidor: /etc/wireguard/wg0.conf (ejecutar como root)
cd /etc/wireguard
cat > wg0.conf <<EOF
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = $(cat server.key)
# Forward tunnel traffic and hide it behind the VPS address (eth0 = your interface)
PostUp = iptables -I FORWARD -i %i -j ACCEPT
PostUp = iptables -I FORWARD -o %i -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
PostUp = iptables -t nat -I POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT
PostDown = iptables -D FORWARD -o %i -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
PostDown = iptables -t nat -D POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

[Peer]
# phone
PublicKey = $(cat phone.pub)
AllowedIPs = 10.8.0.2/32
EOF
chmod 600 wg0.conf

%i se sustituye por el nombre de la interfaz, wg0, cuando wg-quick ejecuta las líneas PostUp y PostDown. MASQUERADE reescribe cada paquete a la dirección de la interfaz de salida. El manual de iptables prefiere SNAT --to-source YOUR_VPS_IP para una dirección estática; ambos funcionan aquí.

¿Qué va en la configuración del cliente?

El archivo del cliente contiene la clave privada del dispositivo, su dirección de túnel, un servidor DNS y la clave pública y la dirección del servidor. AllowedIPs = 0.0.0.0/0, ::/0 envía todo el tráfico al túnel, incluido IPv6, así que nada se filtra fuera de él. Con el servidor solo IPv4 de arriba, el tráfico IPv6 simplemente se detiene, y la mayoría de las apps recurren a IPv4.

Cliente: /etc/wireguard/phone.conf (creado en el servidor)
cd /etc/wireguard
cat > phone.conf <<EOF
[Interface]
PrivateKey = $(cat phone.key)
Address = 10.8.0.2/32
DNS = 9.9.9.9

[Peer]
PublicKey = $(cat server.pub)
Endpoint = YOUR_VPS_IP:51820
AllowedIPs = 0.0.0.0/0, ::/0
EOF

# Phone: scan this QR code in the WireGuard app
apt install -y qrencode
qrencode -t ansiutf8 < phone.conf

# Linux computer: copy phone.conf to /etc/wireguard/, then
# wg-quick up phone

Usa cualquier resolución de DNS de tu confianza en lugar de 9.9.9.9. En un cliente Linux, la línea DNS necesita resolvconf o openresolv, que Debian lista como paquetes sugeridos. Borra phone.key y phone.conf del servidor una vez que el dispositivo tenga su copia.

¿Tengo que abrir un puerto en el firewall?

Solo si hay un firewall en el VPS: debe permitir la entrada de UDP 51820 y dejar pasar el tráfico del túnel. Con ufw, ejecuta ufw allow 51820/udp. Las reglas FORWARD de wg0.conf se insertan al principio de la cadena, por delante de la política DROP por defecto que ufw establece para el tráfico enrutado. Mantén abierto el puerto 22 antes de activar cualquier firewall, o te quedarás fuera.

¿Cómo añado otro dispositivo?

Cada dispositivo recibe su propio par de claves, su propia dirección de túnel y su propio bloque [Peer]. Ejecuta wg genkey | tee laptop.key | wg pubkey > laptop.pub en /etc/wireguard. Añade un bloque [Peer] con PublicKey configurado con la nueva clave pública y AllowedIPs = 10.8.0.3/32. Aplícalo sin desconectar otros dispositivos: systemctl reload wg-quick@wg0, que ejecuta wg syncconf. Construye laptop.conf como phone.conf, con Address = 10.8.0.3/32.

¿Cómo enruto IPv6 a través del túnel?

Añade un rango IPv6 privado en ambos lados, reenvíalo y tradúcelo como IPv4. Elige un rango local único aleatorio, como fd42:42:42::/64.

  • Servidor: Address = 10.8.0.1/24, fd42:42:42::1/64, y en el peer AllowedIPs = 10.8.0.2/32, fd42:42:42::2/128.
  • NAT: copia las tres líneas PostUp y PostDown con ip6tables y el rango IPv6.
  • Cliente: Address = 10.8.0.2/32, fd42:42:42::2/128.
  • Reenvío: añade net.ipv6.conf.all.forwarding=1 a /etc/sysctl.d/99-wireguard.conf.

Comprueba una cosa primero. Con el reenvío activado, el kernel de Linux ignora los anuncios de router a menos que accept_ra sea 2. Si tu VPS aprende su ruta IPv6 de esa forma, configura net.ipv6.conf.eth0.accept_ra=2 en el mismo archivo.

¿Por qué el túnel se conecta pero no carga ninguna web?

El handshake funciona pero el tráfico se detiene en el servidor, casi siempre por una de cuatro razones.

  • El reenvío está desactivado: sysctl net.ipv4.ip_forward debe mostrar 1.
  • Interfaz incorrecta en la regla NAT: compara eth0 en wg0.conf con ip route show default.
  • Ningún handshake: la IP o el puerto del endpoint son incorrectos, o un firewall bloquea UDP 51820.
  • Los nombres no se resuelven: el cliente no tiene una línea DNS funcional, o falta resolvconf en un cliente Linux.

Después de cada corrección, ejecuta systemctl restart wg-quick@wg0 y vuelve a probar.

¿Qué VPS debería usar para WireGuard?

Sirve cualquier KVM VPS con una dirección IPv4; el plan depende de cuánto tráfico pase por el túnel. La página sobre cuál es el mejor offshore VPS para WireGuard compara planes, cuotas y ubicaciones. Los precios de todos los planes están en cuánto cuesta un offshore VPS en OffshoreKVM. Antes de confiar en él para tu privacidad, lee qué puede ver tu proveedor de VPS en tu servidor.

WireGuard en un VPS: preguntas frecuentes

¿Qué puerto usa WireGuard?

WireGuard no tiene un puerto fijo. ListenPort es opcional y, sin él, el servidor elige un puerto aleatorio. UDP 51820 es el puerto de los ejemplos oficiales, así que la mayoría de las guías lo usan.

¿Necesito PersistentKeepalive?

Normalmente no. El manual de wg dice que la mayoría de los usuarios no lo necesitará. Añade PersistentKeepalive = 25 al [Peer] del cliente solo si el servidor debe llegar a un dispositivo que está detrás de NAT y permanece inactivo.

¿Esta guía funciona en Debian 13 o Ubuntu 22.04?

Sí. Ambos incluyen WireGuard en sus repositorios estándar, así que los mismos comandos funcionan. Solo las versiones de Debian anteriores a Bullseye necesitan backports, según la página de instalación de WireGuard.

¿Puede ver mi proveedor de VPS lo que hago a través del túnel?

El túnel termina en el VPS, así que el tráfico sale de él como tráfico de internet normal; HTTPS mantiene cifrado el contenido de las páginas. Sin logs: no guardamos logs de conexión, ni logs de tráfico, ni direcciones IP de visitantes o clientes, ni en el sitio web, ni en el panel, ni en el VPS. La guía sobre si necesitas un offshore VPS o una VPN sopesa las ventajas y desventajas.

¿Cuánto tarda en estar listo mi VPS?

Una persona crea tu VPS en cuanto se confirma tu pago, y está listo minutos después, nunca más de una hora tras esa confirmación; tu panel muestra el estado y, cuando el VPS está en marcha, la dirección IP. La configuración de WireGuard en sí lleva unos minutos una vez que puedes iniciar sesión.

Consigue un VPS para tu servidor WireGuard

Debian 12 o Ubuntu 24.04 en KVM, desde $3.08 por 30 días. Sin KYC, solo criptomonedas.

Fuentes (10)
  1. Instalación — WireGuard (read 2026-10-29)
  2. Inicio rápido — WireGuard (read 2026-10-29)
  3. Manual de wg(8) — wireguard-tools (read 2026-10-29)
  4. Manual de wg-quick(8) — wireguard-tools (read 2026-10-29)
  5. [email protected] — wireguard-tools (read 2026-10-29)
  6. Paquete wireguard-tools (bookworm) — Debian (read 2026-10-29)
  7. IP Sysctl (ip_forward, forwarding, accept_ra) — The Linux Kernel documentation (read 2026-10-29)
  8. iptables-extensions(8): MASQUERADE, SNAT, conntrack — Debian manpages (read 2026-10-29)
  9. sysctl(8) — Debian manpages (read 2026-10-29)
  10. qrencode(1) — Debian manpages (read 2026-10-29)

Desde $3.08/mes · sin KYC

Despliega un VPS