wgmesh – Automatiza la creación de redes mesh VPN con WireGuard

wgmesh es un script que genera configuraciones de WireGuard para formar redes mesh privadas entre múltiples equipos sin necesidad de configurar manualmente cada par de conexiones.

Descripción del programa wgmesh

wgmesh es una herramienta de línea de comandos programada en Bash que simplifica la creación de redes en malla completa utilizando WireGuard. A partir de un archivo de definición de nodos, produce automáticamente las claves y los archivos de configuración necesarios para que cada par se comunique directamente, eliminando la complejidad de gestionar docenas de pares a mano.

Su principal ventaja es que convierte una tarea tediosa y propensa a errores —escribir manualmente cada sección [Peer] de WireGuard— en un proceso automático de unos segundos. Resulta especialmente útil cuando se necesitan conectar varias máquinas virtuales, servidores domésticos o contenedores que deben verse entre sí como si estuvieran en la misma red local, sin depender de un concentrador central.

El proyecto apareció en GitHub como una solución ligera y portable, aunque no ha recibido actualizaciones desde aproximadamente 2020. Actualmente se considera abandonado, por lo que se recomienda evaluar alternativas activas para entornos nuevos.

¿Necesitas una VPN en malla con WireGuard sin configurar cada túnel manualmente?

Características clave de wgmesh

1. Generación masiva de configuraciones peer-to-peer

Lee un fichero YAML donde se definen los nombres y las IP deseadas de cada nodo, y crea al instante todos los archivos de configuración de WireGuard para que cada equipo tenga definido un túnel hacia todos los demás, aplicando las subredes y puertos indicados.

2. Creación automática de pares de claves

Para cada nodo genera una clave privada y su correspondiente clave pública mediante las herramientas nativas de WireGuard, evitando que el usuario tenga que ejecutar wg genkey repetidamente. Las claves quedan listas dentro de cada bloque de configuración.

3. Script único y portable

Se distribuye como un solo archivo Bash de muy pocas líneas, sin dependencias externas más allá de las que ya requiere WireGuard. Esto permite auditarlo con facilidad y llevarlo en un USB a cualquier máquina Linux con bash y wg instalados.

4. Integración sencilla con systemd

Los ficheros de configuración generados se pueden copiar directamente a /etc/wireguard y levantar la interfaz con systemctl start wg-quick@wgmesh. No necesita demonios propios ni bases de datos, lo que mantiene el sistema liviano.

Explicación detallada

Internamente, el script recorre la lista de nodos declarada en el fichero de entrada y ejecuta un bucle anidado: para cada par de nodos calcula el bloque Peer correspondiente y lo añade al fichero de configuración del otro extremo. También asigna direcciones IP incrementales dentro de la subred definida y fija el puerto de escucha de cada interfaz, asegurándose de que todos los túneles sean bidireccionales y completamente mallados.

Para quien administra varias máquinas, esto supone ahorrar largas sesiones copiando claves y escribiendo bloques. Basta con definir una tabla de hosts, ejecutar un comando y distribuir los archivos resultantes. En pocos minutos se consigue una red privada donde cada servidor puede alcanzar a cualquier otro sin pasar por un nodo central.

La limitación más relevante es que la herramienta no gestiona el enrutamiento ni la asignación dinámica de direcciones; simplemente vuelca configuraciones estáticas. Tampoco ofrece ayuda para entornos Windows ni interfaces gráficas. Además, al estar abandonada, no se corregirán posibles incompatibilidades con futuras versiones de WireGuard.

Descarga e instalación de wgmesh

  • Página oficial: https://github.com/ralph13/wgmesh
  • Versión actual: Última versión disponible (sin numeración de releases)
  • Tamaño: Muy ligero (menos de 50 KB)
  • SO compatibles: Linux (requiere bash y WireGuard)
  • Requisitos: Bash, WireGuard, permisos de superusuario para aplicar la configuración
  • Licencia: MIT (código abierto)

Limitaciones importantes

  • ❌ Software abandonado. La última actividad en el repositorio data de aproximadamente 2020.
  • ❌ No funciona en Windows ni macOS; está pensado exclusivamente para entornos Linux con Bash.
  • ❌ Solo genera configuraciones estáticas; no maneja cambios en la topología ni alta disponibilidad.
  • ❌ Carece de soporte y no se actualizará para adaptarse a nuevas opciones de WireGuard.

Alternativa recomendada

Netmaker es una plataforma moderna y activa que automatiza redes mesh con WireGuard, ofrece panel web y gestión dinámica de nodos, y está preparada para entornos en producción.

Cómo usar wgmesh

Clone el repositorio o descargue el script desde GitHub y asegúrese de que WireGuard está instalado en todas las máquinas que formarán la malla. Cree un archivo YAML de definición siguiendo el ejemplo de la documentación, donde se indica el nombre de cada nodo, su dirección IP deseada y el puerto de escucha. Asigne también la subred que compartirán.

Ejecute el script con el archivo YAML como argumento. En pocos segundos se generará un directorio por cada nodo que contiene su configuración completa. Copie cada fichero a la ruta /etc/wireguard/ del equipo correspondiente y levante la interfaz con wg-quick up wgmesh. Repita el proceso en cada máquina y verifique la conectividad con un simple ping a las IPs de los otros nodos.

Si necesita añadir o eliminar un nodo posteriormente, basta con editar el YAML original y volver a generar todas las configuraciones. Aunque es un método artesanal, resulta práctico cuando el número de participantes no cambia con frecuencia y se valora la sencillez por encima de la automatización dinámica.

Observaciones sobre wgmesh

La herramienta encaja bien en laboratorios caseros, entornos de pruebas o pequeñas redes de confianza donde se necesite una malla VPN privada rápida de montar. Es ideal para administradores que ya manejan WireGuard y quieren ahorrarse el trabajo repetitivo de escribir configuraciones.

No es la mejor elección si se requiere una gestión centralizada, una interfaz gráfica o la posibilidad de agregar nodos sobre la marcha sin regenerar todo. En esos casos, plataformas como Netmaker o Tailscale ofrecen una experiencia mucho más pulida y dinámica.

El autor del repositorio original, registrado bajo el usuario ralph13 en GitHub, publicó el script como una contribución puntual a la comunidad. No hay indicios de que el proyecto haya sido transferido a otra organización ni de que exista un fork mantenido oficialmente.

El estado de abandono implica que cualquier error detectado quedará sin solución. Además, futuras versiones de WireGuard podrían introducir cambios sintácticos o de funcionamiento que dejen obsoletos los archivos generados. No es recomendable para entornos que vayan a recibir mantenimiento a largo plazo.

A pesar de su antigüedad, el script sigue siendo perfectamente funcional en distribuciones actuales porque se apoya en herramientas estándar que no han cambiado. Para un uso puntual y controlado, sigue cumpliendo su objetivo sin añadir complejidad.

Preguntas frecuentes

¿wgmesh es gratuito?

Sí, es software libre publicado bajo licencia MIT. Se puede usar, modificar y distribuir sin coste alguno.

¿En qué sistemas operativos funciona?

Solo es compatible con Linux. Necesita Bash y que el paquete WireGuard esté instalado.

¿Es seguro usar un script abandonado para gestionar mi VPN?

El script en sí no introduce riesgos porque solo genera ficheros de texto. La seguridad depende de la configuración de WireGuard. Sin embargo, al no recibir mantenimiento, podría no contemplar opciones nuevas o mejores prácticas actuales.

¿Puedo usar wgmesh en producción?

No es aconsejable porque el proyecto no se actualiza y no ofrece soporte. Para entornos productivos existen alternativas activas que garantizan continuidad y asistencia.

wgmesh cumple su propósito con eficacia cuando se necesita una malla WireGuard sencilla y no se quiere depender de servicios de terceros. Aunque su desarrollo se detuvo, sigue siendo una opción ligera y transparente para quien prefiera mantener el control total sobre las configuraciones.