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.
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
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
- Activa el túnel en el cliente.
- Ejecuta
sudo wg showen el servidor y confirma que hay un handshake reciente. - Visita una página de "cuál es mi IP" desde el cliente. Debería mostrar la dirección de tu servidor.
- 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.