VPN con WireGuard: instalación y configuración en 15 minutos

WireGuard es el protocolo VPN moderno que ha reemplazado a OpenVPN en la mayoría de nuevas instalaciones. Es más rápido, más simple (solo ~4000 líneas de código frente a las 100.000+ de OpenVPN), se configura en minutos y usa criptografía moderna. En este artículo montamos un servidor VPN completo y conectamos un cliente.

Instalación del servidor

sudo apt update && sudo apt install -y wireguard
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

Generar claves

sudo mkdir -p /etc/wireguard
cd /etc/wireguard

wg genkey | sudo tee server_private.key | wg pubkey | sudo tee server_public.key

sudo chmod 600 server_private.key

SERVER_PRIVKEY=$(sudo cat server_private.key)
SERVER_PUBKEY=$(sudo cat server_public.key)
echo "Clave pública del servidor: $SERVER_PUBKEY"

wg genkey | tee client1_private.key | wg pubkey | tee client1_public.key
CLIENT1_PRIVKEY=$(cat client1_private.key)
CLIENT1_PUBKEY=$(cat client1_public.key)

Configuración del servidor

sudo nano /etc/wireguard/wg0.conf
[Interface]

Address = 10.0.0.1/24

ListenPort = 51820

PrivateKey = 

PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE


[Peer]
PublicKey = 

AllowedIPs = 10.0.0.2/32

sudo systemctl enable --now wg-quick@wg0

sudo wg show

Configuración del cliente

[Interface]
PrivateKey = 
Address = 10.0.0.2/24
DNS = 1.1.1.1

[Peer]

PublicKey = 

Endpoint = tu-servidor.com:51820

AllowedIPs = 0.0.0.0/0

PersistentKeepalive = 25


sudo wg-quick up wg0

sudo wg show
ping 10.0.0.1    # hacer ping al servidor VPN

Añadir más clientes

wg genkey | tee client2_private.key | wg pubkey | tee client2_public.key


sudo wg set wg0 peer $(cat client2_public.key) allowed-ips 10.0.0.3/32


sudo wg addconf wg0 /dev/stdin <<< "[Peer]
PublicKey = $(cat client2_public.key)
AllowedIPs = 10.0.0.3/32"

Generar código QR para móviles

sudo apt install qrencode

qrencode -t ansiutf8 < cliente1.conf

Monitorización

sudo wg show

ip addr show wg0

journalctl -u wg-quick@wg0 -f

WireGuard es la VPN que deberías usar en 2026. Su configuración mínima (menos de 20 líneas por peer), rendimiento superior y mantenimiento activo en el kernel Linux lo hacen la mejor opción para la mayoría de casos de uso, desde acceso remoto corporativo hasta lab doméstico.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *