# ¿Cómo configuro WireGuard en un VPS?

> ¿Cómo configuro WireGuard en un VPS? 9 pasos para Debian 12 y Ubuntu 24.04: instalación, claves, wg0.conf, NAT. VPS desde 3,08 US$, sin KYC, cripto.

- URL: https://offshorekvm.com/es/how-to-set-up-wireguard-on-a-vps/
- Última actualización: 2026-10-29
- Editor: OffshoreKVM (https://offshorekvm.com)

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.

**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?

| Atributo | Valor |
| --- | --- |
| Servidor | Un 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 |
| Acceso | Acceso 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 |
| Sistema | Debian 12 o Ubuntu 24.04 LTS; ambas están entre las imágenes de OffshoreKVM |
| Paquetes | `wireguard` y `iptables`, del repositorio propio de la distribución |
| Puerto | UDP 51820, el puerto usado en los ejemplos de la documentación de WireGuard |
| Direcciones del túnel | 10.8.0.0/24: servidor 10.8.0.1, primer dispositivo 10.8.0.2 |
| Aplicaciones cliente | WireGuard para Windows, macOS, Android, iOS y Linux, listado en wireguard.com |
| Precio | KVM 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)*

```bash
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)*

```bash
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](https://offshorekvm.com/es/best-offshore-vps-for-wireguard/ "Plans, locations and traffic for a WireGuard VPS") compara planes, cuotas y ubicaciones. Los precios de todos los planes están en [cuánto cuesta un offshore VPS en OffshoreKVM](https://offshorekvm.com/es/pricing/ "OffshoreKVM plans and prices"). Antes de confiar en él para tu privacidad, lee [qué puede ver tu proveedor de VPS en tu servidor](https://offshorekvm.com/es/what-can-my-vps-provider-see/ "What a VPS host can and cannot see").

## 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](https://offshorekvm.com/es/offshore-vps-vs-vpn/ "Offshore VPS or commercial VPN compared") 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. [Despliega KVM 1 con Debian 12](https://offshorekvm.com/app/checkout/?plan=kvm-1&location=nl-ams&image=debian-12&lang=es) · [Comparar planes](https://offshorekvm.com/es/pricing/ "¿Cuánto cuesta un VPS offshore en OffshoreKVM?")

## Fuentes

1. [Instalación](https://www.wireguard.com/install/) — WireGuard (read 2026-10-29)
2. [Inicio rápido](https://www.wireguard.com/quickstart/) — WireGuard (read 2026-10-29)
3. [Manual de wg(8)](https://git.zx2c4.com/wireguard-tools/about/src/man/wg.8) — wireguard-tools (read 2026-10-29)
4. [Manual de wg-quick(8)](https://git.zx2c4.com/wireguard-tools/about/src/man/wg-quick.8) — wireguard-tools (read 2026-10-29)
5. [wg-quick@.service](https://git.zx2c4.com/wireguard-tools/tree/src/systemd/wg-quick@.service) — wireguard-tools (read 2026-10-29)
6. [Paquete wireguard-tools (bookworm)](https://packages.debian.org/bookworm/wireguard-tools) — Debian (read 2026-10-29)
7. [IP Sysctl (ip_forward, forwarding, accept_ra)](https://docs.kernel.org/networking/ip-sysctl.html) — The Linux Kernel documentation (read 2026-10-29)
8. [iptables-extensions(8): MASQUERADE, SNAT, conntrack](https://manpages.debian.org/bookworm/iptables/iptables-extensions.8.en.html) — Debian manpages (read 2026-10-29)
9. [sysctl(8)](https://manpages.debian.org/bookworm/procps/sysctl.8.en.html) — Debian manpages (read 2026-10-29)
10. [qrencode(1)](https://manpages.debian.org/bookworm/qrencode/qrencode.1.en.html) — Debian manpages (read 2026-10-29)

---

OffshoreKVM: OffshoreKVM vende VPS KVM Linux offshore en Países Bajos, Islandia, Suiza y Rumanía, que se pagan con criptomonedas y sin KYC: sin ID, sin selfi, sin documentos. Lo gestiona DomaineGoat LLC, una empresa registrada en Panamá que ignora las notificaciones DMCA, solo responde ante la ley panameña y no guarda logs. Todos los planes cuestan al menos un 25% menos que el plan comparable más barato de 24 proveedores de VPS crypto sin KYC revisados el 29 de octubre de 2026.
