WireGuard — VPN del homelab¶
Reemplaza a Tailscale/Headscale (jul 2026). VPN plana punto a punto, sin control plane.
Servidor¶
| Item | Valor |
|---|---|
| Interfaz | wg0 — 10.66.66.1/24 |
| Puerto | 51820/udp (router monopuesto, llega directo) |
| Config | /etc/wireguard/wg0.conf (600 root) |
| Servicio | wg-quick@wg0 (enabled) |
| NAT | MASQUERADE hacia enp42s0 vía PostUp (acceso a LAN 192.168.0.0/24) |
| Endpoint público | matias7235.com.ar:51820 (registro raíz, mantenido por DDNS deSEC) |
Clientes¶
Configs en /etc/wireguard/clients/:
| Cliente | IP | Config |
|---|---|---|
| notebook | 10.66.66.2 |
notebook.conf |
| celular | 10.66.66.3 |
celular.conf |
Regenerado desde cero el 2026-07-04 (claves nuevas). Un solo perfil por dispositivo: full tunnel (
AllowedIPs = 0.0.0.0/0, ::/0— todo el tráfico sale por casa, 600 Mbps simétricos) conMTU = 1380explícito para evitar fragmentación en redes móviles.
- DNS:
192.168.0.12(AdGuard) → resuelve*.matias7235.com.ara la IP LAN (split-horizon). - PresharedKey por peer (defensa extra post-cuántica).
- El server ya soporta exit node sin cambios adicionales: el
MASQUERADEdewg0.confno distingue destino, y las reglasFORWARDaceptan todo el tráfico entrante/saliente dewg0.
Operaciones¶
sudo wg show # estado y handshakes
sudo systemctl restart wg-quick@wg0 # aplicar cambios de wg0.conf
sudo qrencode -t ansiutf8 < /etc/wireguard/clients/celular.conf # QR para el móvil
Agregar un cliente nuevo¶
umask 077
K=$(wg genkey); P=$(echo $K | wg pubkey); PSK=$(wg genpsk)
# 1. Agregar [Peer] en /etc/wireguard/wg0.conf con PublicKey=$P, PresharedKey=$PSK, AllowedIPs=10.66.66.X/32
# 2. Crear /etc/wireguard/clients/<nombre>.conf con PrivateKey=$K (mismo formato que los existentes, Address=10.66.66.X/32)
# 3. sudo systemctl restart wg-quick@wg0
Migración desde Headscale — COMPLETADA (2026-07-04)¶
- Headplane y Headscale eliminados: stacks archivados en
/opt/docker/headplane.removed.20260704y/opt/docker/headscale.removed.20260704, entradas quitadas del Caddyfile. tailscaleddetenido, deshabilitado y desinstalado del server (las reglasts-*de iptables se fueron con él). Desinstalar también el cliente Tailscale de los dispositivos si quedó alguno.- WireGuard verificado como exit node en notebook y celular (handshakes y tráfico confirmados).