OffshoreVps
Seguridad17 sept 202610 min de lecturaPor el equipo de OffshoreVps

Configura tu propia VPN WireGuard en un VPS

Paso a paso: instala WireGuard en Ubuntu o Debian, crea las claves, escribe las configuraciones del servidor y del cliente, abre el cortafuegos y prueba el túnel.

WireGuard es un protocolo VPN moderno, rápido, pequeño y fácil de configurar. Ejecutar el tuyo en un VPS te da un túnel cifrado hacia un servidor en el país que elijas, sin ninguna empresa de VPN de terceros de por medio. Esta guía usa Ubuntu 24.04 o Debian 12/13 y supone que ya has protegido el servidor.

Ventana de terminal en un VPS que muestra los comandos usados para configurar WireGuard, empezando por “sudo apt update”
El tipo de comandos que ejecutarás en tu servidor en esta guía.

1. Instala WireGuard

sudo apt update
sudo apt install -y wireguard

2. Genera las claves del servidor

cd /etc/wireguard
umask 077
wg genkey | tee server.key | wg pubkey > server.pub

umask 077 garantiza que los archivos de claves solo los pueda leer root. Mantén server.key en privado.

3. Crea las claves del cliente

Genera un par de claves para tu portátil o teléfono en el servidor y copia después la configuración del cliente:

wg genkey | tee client1.key | wg pubkey > client1.pub

4. Escribe la configuración del servidor

Primero busca el nombre de tu interfaz de red pública:

ip route get 1.1.1.1 | awk '{print $5; exit}'

A menudo es eth0 o ens3. Crea /etc/wireguard/wg0.conf y sustituye los valores en mayúsculas por los tuyos:

[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY
PostUp   = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ETH_IF -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ETH_IF -j MASQUERADE

[Peer]
# client1
PublicKey = CLIENT1_PUBLIC_KEY
AllowedIPs = 10.8.0.2/32

Pega el contenido de server.key y client1.pub donde se indica, y sustituye ETH_IF por el nombre de tu interfaz.

5. Activa el reenvío de IP

echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/99-wireguard.conf
sudo sysctl --system
Los pasos de esta guía en orden: 1. 1. Instala WireGuard; 2. 3. Crea las claves del cliente; 3. 5. Activa el reenvío de IP; 4. 7. Inicia el túnel; 5. 9. Pruébalo; 6. Elegir una ubicación
Los pasos de esta guía, en orden.

6. Abre el cortafuegos

sudo ufw allow 51820/udp
sudo ufw route allow in on wg0
sudo ufw reload

7. Inicia el túnel

sudo systemctl enable --now wg-quick@wg0
sudo wg show

Deberías ver la interfaz y, cuando se conecte un cliente, su último handshake.

8. Configura el cliente

En tu dispositivo, crea una configuración como esta (las aplicaciones oficiales de WireGuard para Windows, macOS, Linux, iOS y Android pueden importarla desde un archivo o un código QR):

[Interface]
Address = 10.8.0.2/24
PrivateKey = CLIENT1_PRIVATE_KEY
DNS = 1.1.1.1

[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = YOUR_SERVER_IP:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25

Usar AllowedIPs = 0.0.0.0/0, ::/0 envía todo el tráfico por el túnel. Para llegar solo a tu red privada, usa 10.8.0.0/24 en su lugar.

9. Pruébalo

  1. Activa el túnel en el cliente.
  2. Ejecuta sudo wg show en el servidor y confirma que hay un handshake reciente.
  3. Visita una página de "cuál es mi IP" desde el cliente. Debería mostrar la dirección de tu servidor.
  4. Comprueba si hay fugas de DNS si la privacidad es el objetivo, y añade reglas IPv6 si tu servidor tiene IPv6.

Añadir más dispositivos

Para cada dispositivo nuevo, genera un par de claves, añade otro bloque [Peer] con una dirección nueva como 10.8.0.3/32 y ejecuta sudo wg syncconf wg0 <(wg-quick strip wg0) para aplicarlo sin cortar las conexiones existentes.

Elegir una ubicación

Un servidor WireGuard funciona desde cualquiera de nuestras ubicaciones. Elige una cercana para mayor velocidad, o en el país de cuya dirección IP quieres que provenga tu tráfico. Consulta cómo elegir una ubicación de VPS. Un VPS pequeño es más que suficiente para un túnel personal.