¿Por qué elegir WireGuard?
WireGuard es un protocolo VPN moderno, seguro y ultra rápido que se ha ganado mi confianza por su simplicidad y eficiencia. Funciona en casi cualquier sistema operativo y ofrece conexiones más veloces y estables que OpenVPN. Además, se integra especialmente bien con el kernel de Linux, lo que le da una ventaja en rendimiento.
En este artículo te voy a mostrar cómo instalarlo, configurarlo y dejarlo funcionando como un campeón, todo sin dolores de cabeza.
Instalar WireGuard en tu sistema
Primero lo primero: necesitas instalar WireGuard tanto en el servidor como en el cliente. Cada sistema tiene su método, pero todos son sencillos. Aquí te dejo una guía rápida por plataforma:
Windows
Descarga el cliente oficial desde la web de WireGuard.
macOS
Puedes descargarlo desde la App Store o instalarlo con Homebrew:
brew install wireguard-toolsAndroid
Disponible en Play Store y F-Droid. También puedes usar Termux:
pkg install wireguard-toolsiOS
Descárgalo directamente desde la App Store.
BSD
# OpenBSD
doas pkg_add wireguard-tools
# FreeBSD
doas pkg install wireguard-toolsLinux
# Arch
sudo pacman -S wireguard-tools
# Debian/Ubuntu
sudo apt install wireguard
# Fedora
sudo dnf install wireguard-tools
# Gentoo
doas emerge wireguard-toolsPara más distros (sí, hay muchas), revisa la página oficial.
Generar las llaves
Cada dispositivo que se conecte necesita un par de llaves: pública y privada. Primero, crea la carpeta de configuración:
sudo mkdir -p /etc/wireguard/Luego, genera las llaves:
wg genkey | tee privatekey | wg pubkey > publickey
Esto te creará dos archivos: privatekey (que debe quedarse en secreto) y publickey (que compartirás con los otros nodos).
Configurar la VPN
Vamos a crear el archivo de configuración principal: /etc/wireguard/wg0.conf. Puedes usar cualquier editor, como nano o vim.
Conexión simple punto a punto
Perfecta si solo quieres conectar un cliente a un servidor.
Servidor (wg0.conf)
[Interface]
Address = 10.0.1.1
PrivateKey = <clave_privada_servidor>
ListenPort = 51820
[Peer]
PublicKey = <clave_publica_cliente>
AllowedIPs = 10.0.1.2/32Cliente (wg0.conf)
[Interface]
Address = 10.0.1.2
PrivateKey = <clave_privada_cliente>
ListenPort = 21841
[Peer]
PublicKey = <clave_publica_servidor>
Endpoint = IP_DEL_SERVIDOR:51820
AllowedIPs = 10.0.1.0/24
PersistentKeepalive = 25Inicia la conexión con:
wg-quick up wg0Hazlo en ambos extremos. Si tienes GUI, simplemente presiona «conectar».
Acceso a la red local (LAN)
Si quieres que tu cliente acceda a la red local del servidor (por ejemplo, a una impresora o NAS), necesitas redirigir el tráfico y aplicar reglas de iptables en el servidor:
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
Asegúrate de que eth0 sea tu interfaz de red. En el cliente, actualiza:
AllowedIPs = 10.0.1.0/24, 192.168.1.0/24Redirigir todo el tráfico por la VPN
¿Quieres navegar como si estuvieras en otro país? Solo cambia esto en el cliente:
AllowedIPs = 0.0.0.0/0, ::/0Y en el servidor, mejora el manejo del tráfico IPv4 e IPv6:
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; \
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; \
ip6tables -A FORWARD -i wg0 -j ACCEPT; \
ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; \
iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; \
ip6tables -D FORWARD -i wg0 -j ACCEPT; \
ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADEActivar IP forwarding en el servidor
Edita el archivo /etc/sysctl.conf y descomenta:
net.ipv4.ip_forward=1Luego aplica los cambios:
sudo sysctl -p /etc/sysctl.confMejorar la seguridad de la configuración
Por seguridad, restringe los permisos del directorio de WireGuard:
sudo chown -R root:root /etc/wireguard/
sudo chmod -R og-rwx /etc/wireguard/*Y si usas systemd, activa el servicio para que arranque al inicio:
sudo systemctl enable wg-quick@wg0.service¿Y ahora qué?
Ya tienes tu propia VPN personalizada con WireGuard, segura, rápida y bajo tu control total. Puedes probarla con herramientas como whatismyipaddress.com para confirmar que el tráfico está pasando por el servidor.
¿Ya lo probaste? ¿Qué tal te va con la velocidad frente a otros protocolos?
