[{"data":1,"prerenderedAt":146},["ShallowReactive",2],{"seo-verification":3,"blog-desplegar-netbird-vpn-mesh-wireguard-en-vps-es":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-desplegar-netbird-vpn-mesh-wireguard-en-vps-es",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":27,"featuredImage":29,"bgImage":30,"posterImage":31,"relatedSolution":29,"intro":32,"sections":33,"ctaTitle":85,"ctaBody":86,"ctaButton":87,"ctaUrl":88,"relatedPosts":89},291,"desplegar-netbird-vpn-mesh-wireguard-en-vps",{"fr":12,"en":13,"ar":14,"es":10},"deployer-netbird-controle-vpn-mesh-vps","netbird-self-hosted-wireguard-mesh-vpn-on-a-vps","netbird-شبكة-vpn-مشبكة-wireguard-باستضافة-ذاتية","Netbird: red mesh WireGuard autoalojada en un VPS","Conecte varios VPS de clientes sin abrir puertos: Netbird despliega una red mesh WireGuard cuyo plano de control es suyo — Management, Signal y relay COTURN incluidos.",10,1,false,"2026-08-21T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},3,"Despliegue","deploiement","bg-success\u002F10 text-success",[28],{"id":23,"name":24,"slug":25,"color":26,"icon":25},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fdeployer-netbird-controle-vpn-mesh-vps-poster.svg","Usted gestiona servidores repartidos en varias cuentas de clientes y acaba abriendo puertos, manteniendo reglas UFW distintas o distribuyendo claves WireGuard estáticas a mano. Headscale responde a la misma necesidad para una red plana — le hemos dedicado \u003Ca href=\"\u002Fblog\u002Fself-host-headscale-tailscale-vps\">una guía específica\u003C\u002Fa>. Netbird es otra respuesta, pensada para la gestión de varias redes aisladas: peers groups, reglas de acceso por red e interfaz web incluida. Esta guía despliega el plano de control de Netbird (~28 k estrellas en GitHub, AGPLv3 en el lado servidor) en un VPS dedicado y luego conecta tres nodos en mesh sin abrir un solo puerto público.",[34,38,41,44,69,72,75,79,82],{"type":35,"title":36,"body":37},"h2","WireGuard P2P, Headscale, Netbird: tres enfoques distintos","WireGuard estático (vea \u003Ca href=\"\u002Fblog\u002Finstaller-wireguard-vps\">nuestra guía WireGuard P2P\u003C\u002Fa>) obliga a distribuir un par de claves por túnel y a editar `\u002Fetc\u002Fwireguard\u002Fwg0.conf` con cada nuevo homólogo. Eficaz para dos o tres servidores fijos — inmanejable a escala de un parque de agencia.\n\nHeadscale reimplementa el servidor de coordinación de Tailscale: usted conserva los clientes oficiales de Tailscale y obtiene una red plana ilimitada en usuarios. Una sola red por instancia, sin aislamiento nativo entre clientes distintos. Es la opción adecuada para un equipo único que quiere permanecer en el ecosistema Tailscale.\n\nNetbird toma el partido contrario: aporta su propio cliente, su propio plano de control (Management + Signal + relay) y una noción de **red nombrada** con reglas de acceso granulares. Una única instancia puede alojar varias redes totalmente aisladas, lo que la convierte en la herramienta natural para una agencia que gestiona parques de clientes separados. La interfaz web viene incluida de serie.",{"type":35,"title":39,"body":40},"Arquitectura de Netbird: cuatro componentes","Un despliegue autoalojado de Netbird se apoya en cuatro componentes, todos incluidos en el mismo repositorio (`netbirdio\u002Fnetbird`):\n\n**Management Server** — el cerebro del plano de control. Distribuye las claves WireGuard, aplica las reglas de acceso y expone la API REST que consulta la interfaz web. Almacenamiento SQLite por defecto, MySQL o PostgreSQL como opción.\n\n**Signal Server** — el servidor de señalización entre pares. Facilita el intercambio de descriptores de conexión ICE entre los nodos en el momento de establecer el túnel WireGuard. Ningún tráfico de aplicación lo atraviesa.\n\n**COTURN** — el servidor relay STUN\u002FTURN. Actúa de relé cuando una conexión directa entre dos pares es imposible (doble NAT, red corporativa restrictiva). El tráfico solo pasa por COTURN cuando falla el intento directo.\n\n**Dashboard** — la interfaz web (SPA React) que consume la API de Management. Permite crear redes, añadir peers, definir reglas de acceso y generar claves de enrolamiento sin tocar la línea de comandos.\n\nTodos los flujos entre clientes van en **WireGuard cifrado de extremo a extremo**: Management y Signal solo ven los metadatos de enrolamiento, nunca el tráfico de aplicación.",{"type":35,"title":42,"body":43},"Requisitos previos","**VPS dedicado al plano de control.** Prevea un VPS distinto de sus nodos de cliente: 2 vCPU, 2 GB de RAM como mínimo. Un VPS `{{vps.start.name}}` sirve para empezar.\n\n**Puertos que abrir en el VPS de control:**\n\n`443` (TCP) — Management y Dashboard detrás de un reverse proxy HTTPS.\n`3478` (UDP) — COTURN STUN\u002FTURN.\n`49152-65535` (UDP) — rango dinámico de COTURN para las sesiones relay.\n\nLos nodos de cliente no tienen **ningún puerto entrante que abrir**: el cliente Netbird establece conexiones salientes hacia el plano de control.\n\n**Software necesario en el VPS de control:** Docker Engine 24+ y Docker Compose v2, un nombre de dominio que apunte a la IP del VPS y un certificado TLS (Let's Encrypt mediante el script incluido o su reverse proxy habitual).\n\n**En cada nodo de cliente:** el binario `netbird` (paquete Debian\u002FRPM o binario estático), acceso root o sudo.",{"type":45,"title":46,"steps":47},"steps","Desplegar el plano de control y conectar tres nodos",[48,51,54,57,60,63,66],{"title":49,"body":50},"Clonar el repositorio y lanzar el script de inicio","En el VPS de control, descargue el script oficial de Netbird y deje que genere la stack Docker Compose completa:\n\n```bash\ncurl -fsSL https:\u002F\u002Fgithub.com\u002Fnetbirdio\u002Fnetbird\u002Freleases\u002Flatest\u002Fdownload\u002Fgetting-started.sh -o getting-started.sh\nbash getting-started.sh\n```\n\nEl script le pide su dominio (p. ej. `netbird.votre-domaine.com`), genera `docker-compose.yml`, `config.yaml`, `dashboard.env` y la configuración de COTURN, y luego lanza la stack. Al final muestra la URL de la interfaz web y una primera **Setup Key**: consérvela.",{"title":52,"body":53},"Comprobar que los cuatro servicios responden","Una vez terminado el script, confirme que los contenedores están levantados:\n\n```bash\ndocker compose ps\n```\n\nDebe ver cuatro servicios `running`: `netbird-management`, `netbird-signal`, `netbird-coturn` y `netbird-dashboard`. Pruebe el Management desde el propio VPS:\n\n```bash\ncurl -s https:\u002F\u002Fnetbird.votre-domaine.com\u002Fapi\u002Fv1\u002Fpeers \\\n  -H 'Authorization: Token \u003Cvotre-PAT>'\n```\n\nUna respuesta JSON vacía `[]` confirma que el servicio responde y que aún no hay ningún par enrolado.",{"title":55,"body":56},"Crear una red y una Setup Key en la interfaz web","Abra `https:\u002F\u002Fnetbird.votre-domaine.com` en un navegador. Inicie sesión con la cuenta creada durante el setup (o mediante el proveedor OIDC configurado).\n\nEn el menú **Setup Keys**, haga clic en **Create Setup Key**. Póngale un nombre (`vps-client-a`), elija el tipo `Reusable` (para enrolar varias máquinas con la misma clave) y una duración de expiración. Copie la clave: la necesitará en cada nodo.",{"title":58,"body":59},"Enrolar el nodo 1","En el primer VPS de cliente, instale el cliente Netbird:\n\n```bash\ncurl -fsSL https:\u002F\u002Fpkgs.netbird.io\u002Finstall.sh | bash\n```\n\nLuego conéctelo al plano de control apuntando a su instancia:\n\n```bash\nnetbird up \\\n  --management-url https:\u002F\u002Fnetbird.votre-domaine.com \\\n  --setup-key \u003CVOTRE_SETUP_KEY>\n```\n\nConfirme la conexión:\n\n```bash\nnetbird status\n```\n\nDebe leer `Status: Connected` y una IP mesh del rango `100.64.x.x` asignada por su servidor.",{"title":61,"body":62},"Enrolar los nodos 2 y 3","Repita exactamente el mismo procedimiento en los otros dos VPS de cliente. El mismo comando `curl` para instalar el cliente y el mismo comando `netbird up` con el mismo `--management-url` y la misma `--setup-key` (si es de tipo `Reusable`).\n\nUna vez enrolados los tres nodos, compruebe desde el nodo 1 que los pares son visibles:\n\n```bash\nnetbird status --detail\n```\n\nLa salida lista cada par con su IP mesh, su estado (`Connected` o `Connecting`) y su latencia.",{"title":64,"body":65},"Probar la conectividad mesh sin ningún puerto público abierto","Antes de probar, compruebe el estado del firewall en el nodo 1: no debe haber ningún puerto entrante abierto hacia los demás nodos:\n\n```bash\nsudo ufw status numbered\n```\n\nSolo debe aparecer el puerto SSH (22). Ahora haga ping al nodo 2 mediante su IP mesh (visible en `netbird status --detail`, p. ej. `100.64.0.2`):\n\n```bash\nping -c 3 100.64.0.2\n```\n\nEl ping atraviesa el túnel WireGuard establecido entre los pares. Si los dos nodos están tras un NAT estricto, COTURN se encarga del relay: el ping funciona en ambos casos sin ninguna regla UFW adicional.",{"title":67,"body":68},"Comprobar las conexiones directas frente al relay","Para distinguir una conexión directa de un paso por COTURN:\n\n```bash\nnetbird status --detail\n```\n\nLa columna `Connection type` muestra `P2P` para una conexión directa o `Relayed` cuando interviene COTURN. `P2P` es el estado nominal entre dos VPS con IPv4 públicas directas. `Relayed` indica que Netbird ha tenido que pasar por el servidor COTURN: compruebe entonces que los puertos UDP 3478 y el rango 49152-65535 son accesibles desde los nodos.",{"type":35,"title":70,"body":71},"Aislamiento multicliente: peers groups y reglas de acceso","La fuerza de Netbird frente a Headscale es su noción de **red aislada por grupo**. Por defecto, todos los peers enrolados con la misma Setup Key entran en un grupo común. Para aislar los servidores de un cliente A de los de un cliente B:\n\n**1. Cree un grupo por cliente** en la interfaz web (Networks → Groups → Add Group). Llámelos `client-a`, `client-b`.\n\n**2. Asigne cada peer a su grupo.** En la ficha del peer, sección Assigned Groups, añada el grupo correspondiente y quite el grupo `All` si no quiere comunicación entre grupos.\n\n**3. Defina las reglas de acceso** (Access Control → Policies). Una política `client-a-interne` autoriza el tráfico entre peers del grupo `client-a`. No se crea ninguna regla entre `client-a` y `client-b`: las dos redes quedan herméticas.\n\nTambién puede definir **Network Routes**: un peer hace de router para una subred privada (p. ej. `192.168.10.0\u002F24`) y expone esa red a los demás peers del grupo, sin que estos necesiten un cliente Netbird instalado en cada máquina de la subred.",{"type":35,"title":73,"body":74},"Operaciones habituales","**Renovar o revocar una Setup Key.** En la interfaz web, Setup Keys → su clave → Revoke. Los peers ya enrolados conservan su conexión; los nuevos intentos de enrolamiento con esa clave serán rechazados. Cree una clave nueva para los próximos enrolamientos.\n\n**Revocar un peer.** Peers → seleccione el peer → Delete. El nodo queda retirado del mesh de inmediato. En el lado cliente, `netbird status` pasa a `Disconnected` y los túneles WireGuard hacia ese par se destruyen.\n\n**Acceso API para la automatización.** Netbird expone una API REST documentada. Genere un Personal Access Token (Settings → Access Tokens) y gobierne el conjunto desde sus scripts de Ansible o sus pipelines de CI:\n\n```bash\ncurl -s https:\u002F\u002Fnetbird.votre-domaine.com\u002Fapi\u002Fv1\u002Fpeers \\\n  -H 'Authorization: Token \u003CPAT>'\n```\n\n**Monitorización.** El Management Server expone métricas Prometheus en `\u002Fmetrics`. Conecte Grafana a ese endpoint para seguir el número de peers conectados, las sesiones COTURN activas y la latencia de señalización.",{"type":76,"title":77,"body":78},"tip","Endurecimiento: 2FA en el Dashboard y copia de la base Management","El Dashboard de Netbird admite OIDC (Keycloak, Authentik, Azure AD): actívelo para imponer la MFA a todos los administradores del plano de control. Sin SSO, la cuenta local queda protegida únicamente por contraseña.\n\nLa base de datos SQLite del Management Server es el único estado persistente de su red: perder ese archivo significa volver a enrolar todos sus pares. Monte un volumen Docker con nombre (`netbird_management`) y haga una copia de seguridad diaria:\n\n```bash\ndocker run --rm \\\n  -v netbird_management:\u002Fdata \\\n  -v \u002Fopt\u002Fbackups:\u002Fbackup \\\n  alpine tar czf \u002Fbackup\u002Fnetbird-$(date +%Y%m%d).tar.gz \u002Fdata\n```\n\nRotación de las copias de 7 días como mínimo.",{"type":35,"title":80,"body":81},"Resolución de problemas","**COTURN inaccesible — los peers se quedan en `Relayed` o no se conectan nunca.**\nCompruebe que los puertos UDP 3478 y el rango 49152-65535 están abiertos en el firewall del VPS de control (`ufw status`). Pruebe desde un nodo de cliente: `nc -u -z netbird.votre-domaine.com 3478`. La ausencia de respuesta significa tráfico filtrado. En algunos proveedores, los rangos UDP amplios están bloqueados por defecto: ábralos explícitamente.\n\n**Peer bloqueado en `Connecting`.**\nIndica que la comunicación con Management\u002FSignal ha funcionado (el peer se ha enrolado) pero que resulta imposible formar el túnel WireGuard. Causas frecuentes: la IP pública del VPS de control está mal indicada en `config.yaml` (campo `--turn-external-ip` de COTURN), o los puertos UDP del rango dinámico están cerrados. Vuelva a lanzar el script `getting-started.sh` con `--external-ip` explícito si el VPS está tras un NAT.\n\n**La resolución DNS falla entre peers.**\nNetbird integra un resolutor DNS que distribuye los nombres `\u003Chostname>.netbird.cloud` a cada par. Si `ping nœud2.netbird.cloud` falla mientras que `ping 100.64.0.2` funciona, compruebe que el servicio `netbird` está en ejecución en el peer (`systemctl status netbird`) y que su DNS está activo: `resolvectl status | grep netbird`.\n\n**Doble NAT — ninguna conexión directa, COTURN sobrecargado.**\nSi los dos pares están tras un NAT estricto (típicamente: VPS cloud detrás de un balanceador del proveedor), las conexiones directas WireGuard son imposibles y todo el tráfico pasa por COTURN. Solución: asegúrese de que el VPS de control tiene una IPv4 pública directa y de que `--turn-external-ip` apunta a esa IP. Para los nodos de cliente tras un NAT estricto, no hay nada que hacer: COTURN está pensado precisamente para ese caso.\n\n**Actualización de la stack — nodos temporalmente desconectados.**\nUna actualización del Management Server desconecta a los peers durante unos segundos, mientras se reinicia el contenedor. Planifique las actualizaciones fuera de la ventana de tráfico, o active la opción `restart: always` en todos los contenedores para minimizar el tiempo de parada.",{"type":35,"title":83,"body":84},"Lo que el mesh cambia en la gestión de parques","Una red mesh Netbird autoalojada sustituye tres capas que usted mantenía a mano: la distribución de claves WireGuard, las reglas UFW entre servidores y la documentación de los accesos cruzados. Cada nuevo VPS de cliente se enrola con un solo comando; cada revocación es instantánea y central.\n\nEl aislamiento por grupo le permite crecer sin riesgo de colisión: los servidores de dos clientes distintos no pueden verse, aunque corran sobre la misma infraestructura. Y el plano de control sigue siendo suyo — sin dependencia de ningún SaaS de terceros, sin límite de seats, sin suscripción por nodo.\n\nPara ir más lejos, plasme el aprovisionamiento de los nodos en Ansible (vea \u003Ca href=\"\u002Fblog\u002Fansible-automatiser-serveurs-vps\">nuestra guía de Ansible\u003C\u002Fa>): la instalación del cliente y el comando `netbird up` se convierten en tareas idempotentes dentro de un rol reutilizable.","Gestione varios parques de clientes desde un solo espacio de agencia","ServOrbit reúne los dominios, alojamientos y VPS de todos sus clientes en un espacio de revendedor con su propia marca. Añada un VPS dedicado al plano de control de Netbird y administre su red mesh desde el mismo panel de control.","Espacio de agencia ServOrbit","\u002Fsolutions\u002Fagences",[90,113,131],{"id":91,"slug":92,"slugs":93,"title":97,"excerpt":98,"readTime":99,"views":18,"isPinned":19,"publishedAt":100,"updatedAt":21,"category":101,"categories":107,"featuredImage":29,"bgImage":30,"posterImage":109,"relatedSolution":110},164,"auto-alojar-headscale-en-un-vps-servidor-tailscale",{"fr":94,"en":95,"ar":96,"es":92},"self-host-headscale-tailscale-vps","self-host-headscale-on-a-vps-your-own-tailscale-control-server","استضافة-headscale-على-vps-خادم-تحكم-tailscale-خاص-بك","Alojar Headscale en un VPS: servidor de control Tailscale","Sustituya el servidor de control en la nube de Tailscale por Headscale en su VPS: usuarios ilimitados, malla WireGuard completa, magic DNS y ACL, sin SaaS.",6,"2026-07-05T00:00:00+00:00",{"id":102,"name":103,"slug":104,"color":105,"icon":106},8,"Seguridad y monitorización","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[108],{"id":102,"name":103,"slug":104,"color":105,"icon":106},"\u002Fblog\u002Fcovers\u002Fself-host-headscale-tailscale-vps-poster.svg",{"categorySlug":111,"appSlug":112},"redes-vpn","headscale",{"id":114,"slug":115,"slugs":116,"title":120,"excerpt":121,"readTime":17,"views":18,"isPinned":19,"publishedAt":122,"updatedAt":21,"category":123,"categories":128,"featuredImage":29,"bgImage":30,"posterImage":130,"relatedSolution":29},236,"automatizar-servidores-vps-con-ansible",{"fr":117,"en":118,"ar":119,"es":115},"ansible-automatiser-serveurs-vps","automating-vps-server-management-with-ansible","أتمتة-إدارة-خوادم-vps-باستخدام-ansible","Automatizar la gestión de servidores VPS con Ansible","Automatice la gestión de una flota de servidores VPS con Ansible: inventario, playbooks, roles y Vault para una infraestructura reproducible.","2026-08-08T00:00:00+00:00",{"id":124,"name":125,"slug":126,"color":127,"icon":126},2,"Automatización","automatisation","bg-brand-action\u002F10 text-brand-action",[129],{"id":124,"name":125,"slug":126,"color":127,"icon":126},"\u002Fblog\u002Fcovers\u002Fansible-automatiser-serveurs-vps-poster.svg",{"id":132,"slug":133,"slugs":134,"title":138,"excerpt":139,"readTime":102,"views":140,"isPinned":19,"publishedAt":141,"updatedAt":21,"category":142,"categories":143,"featuredImage":29,"bgImage":30,"posterImage":145,"relatedSolution":29},228,"hardening-inicial-servidor-linux",{"fr":135,"en":136,"ar":137,"es":133},"durcissement-serveur-linux-initial","initial-linux-server-hardening","تصليب-الخادم-linux-الأولي","Endurecimiento (hardening) inicial de un servidor Linux","Cree un usuario sudo, configure SSH con claves y active UFW y fail2ban en Ubuntu o Debian en menos de una hora.",0,"2026-08-06T00:00:00+00:00",{"id":102,"name":103,"slug":104,"color":105,"icon":106},[144],{"id":102,"name":103,"slug":104,"color":105,"icon":106},"\u002Fblog\u002Fcovers\u002Fdurcissement-serveur-linux-initial-poster.svg",1789665016014]