WireGuard permite acceder a servicios privados sin publicar sus interfaces web. El extremo VPN debe ser accesible; DDNS no evita CGNAT.
Configuración
Usa subredes distintas para LAN y VPN y un par de claves por dispositivo. AllowedIPs determina qué destinos pasan por el túnel. Un túnel completo requiere también encaminamiento y, según la topología, NAT.
Un servidor en el router necesita una regla de entrada UDP. Si está detrás, necesita una redirección. UDP 51820 es un ejemplo, no un valor obligatorio.
Verificación
Comprueba el handshake y el acceso real mediante datos móviles. Un comprobador TCP no prueba WireGuard. Tras cambiar la IP puede ser necesario que el cliente resuelva de nuevo el nombre DDNS. Incluso los sitios .app privados necesitan un certificado HTTPS válido.
Ejemplos de configuración
Adapta valores, interfaces y puertos. Los ejemplos pueden corresponder a versiones diferentes: no ejecutes juntas alternativas incompatibles. Nunca publiques tokens reales ni claves privadas.
sudo -i # the rest of this guide runs as root
apt update
apt install wireguard iptables qrencode
# keys for the server and for your first device (a phone)
cd /etc/wireguard
umask 077
wg genkey | tee server.key | wg pubkey > server.pub
wg genkey | tee phone.key | wg pubkey > phone.pub
cat server.pub phone.pub[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = <contents of server.key>
# let VPN clients reach the LAN, and hide them behind this machine's LAN address
PostUp = sysctl -w net.ipv4.ip_forward=1; iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
[Peer]
# phone
PublicKey = <contents of phone.pub>
AllowedIPs = 10.8.0.2/32chmod 600 /etc/wireguard/wg0.conf
systemctl enable --now wg-quick@wg0
wg show[Interface]
Address = 10.8.0.2/32
PrivateKey = <contents of phone.key>
# optional: use your Pi-hole or router for DNS while connected
DNS = 192.168.1.2
[Peer]
PublicKey = <contents of server.pub>
Endpoint = home.yourname.uk.app:51820
# only home traffic goes through the tunnel ("split tunnel")
AllowedIPs = 10.8.0.0/24, 192.168.1.0/24
PersistentKeepalive = 25qrencode -t ansiutf8 < /etc/wireguard/phone.conf
shred -u /etc/wireguard/phone.key /etc/wireguard/phone.conf # once scannedComprobaciones finales
Prueba con datos móviles fuera de tu Wi-Fi. Verifica por separado DNS, puerto previsto, certificado HTTPS válido e inicio de sesión. Mantén privados los paneles administrativos, instala actualizaciones y prueba restaurar una copia. Revisa los cortafuegos IPv6 e IPv4. Un test de puerto correcto no es una auditoría de seguridad.
Esta edición localizada resume la guía original. Los comandos mantienen su sintaxis original. Consulta la documentación enlazada del fabricante para tu versión exacta.