Configurar WireGuard para que se conecte automáticamente al arrancar el sistema usando NetworkManager es sencillo con nmcli. Esto es especialmente útil en servidores o máquinas que necesitan VPN persistente sin intervención manual.
Prerrequisitos
- Ubuntu 24.04 con WireGuard instalado (
sudo apt install wireguard). - Archivo de configuración WireGuard (ej:
/etc/wireguard/wg0.conf). - NetworkManager activo (por defecto en Ubuntu desktop/server con systemd).
Paso 1: Importar la configuración WireGuard
Si tienes tu wg0.conf listo, impórtalo a NetworkManager:
sudo nmcli connection import type wireguard file /etc/wireguard/wg0.conf
Esto crea un perfil de conexión llamado wg0 (o similar, según tu config). Verifícalo:
nmcli connection show
Paso 2: Activar autoconnect
Habilita la conexión automática al boot:
sudo nmcli connection modify wg0 connection.autoconnect yes
Paso 3: Verificar el estado
Lista todas las conexiones con su autoconnect:
nmcli -f name,autoconnect connection
Salida esperada:
NAME AUTOCONNECT
wg0 yes
Wired connection 1 yes
Para detalles específicos:
nmcli connection show wg0 | grep autoconnect
Paso 4: Probar la conexión
Activa manualmente primero:
nmcli connection up wg0
Reinicia el sistema y verifica con nmcli connection show --active o wg show. Debería levantarse sola.
Solución de problemas comunes
No se conecta al boot:
- Asegúrate de que NetworkManager espere a la red base:
sudo nmcli connection modify wg0 connection.autoconnect-priority 10. - Revisa logs:
journalctl -u NetworkManager -f.
Prioridad de conexiones:
Si WiFi/Ethernet interfiere:
bashsudo nmcli connection modify "Wired connection 1" connection.autoconnect-priority 20
sudo nmcli connection modify wg0 connection.autoconnect-priority 10
(Números más altos = prioridad mayor).
Desactivar autoconnect:
sudo nmcli connection modify wg0 connection.autoconnect no
Script de automatización completo
Guarda esto como setup-wg-autoconnect.sh:
#!/bin/bash
WG_CONF="/etc/wireguard/wg0.conf"
CONN_NAME="wg0"
# Importar si no existe
if ! nmcli connection show "$CONN_NAME" &>/dev/null; then
nmcli connection import type wireguard file "$WG_CONF"
fi
# Activar autoconnect
nmcli connection modify "$CONN_NAME" connection.autoconnect yes
# Subir
nmcli connection up "$CONN_NAME"
echo "✅ wg0 configurada con autoconnect=yes"
nmcli -f name,autoconnect connection | grep wg0
Ejecuta: chmod +x setup-wg-autoconnect.sh && sudo ./setup-wg-autoconnect.sh.
Conclusión
Con estos pasos, tu WireGuard wg0 se activará automáticamente en cada arranque vía NetworkManager, ideal para servidores VPN, home labs o acceso remoto persistente. ¡Reinicia y listo! 🚀
¿Algún problema? Deja un comentario o prueba sudo systemctl restart NetworkManager.
