--- title: "Cómo instalar MeshCentral en Ubuntu 24.04 con HTTPS" description: "Instala MeshCentral en Ubuntu 24.04 con Node.js, systemd y certificado de Let's Encrypt, crea la cuenta de administrador y conecta tu primer agente remoto." category: "Acceso Remoto" language: es source: https://cubepath.com/es/docs/acceso-remoto/instalacion-de-meshcentral-gestion-remota updated: 2026-09-25 --- # Cómo instalar MeshCentral en Ubuntu 24.04 con HTTPS MeshCentral es una plataforma open source de gestión remota: desde un panel web puedes abrir una terminal, transferir archivos o ver el escritorio de los equipos donde instalas su agente, sin coste por dispositivo. En este tutorial instalarás MeshCentral en Ubuntu 24.04 con Node.js, lo ejecutarás como servicio systemd con un usuario sin privilegios, obtendrás un certificado de Let's Encrypt con el cliente ACME integrado y conectarás tu primer equipo. ## Requisitos previos - Un servidor con Ubuntu 24.04 LTS, por ejemplo un VPS de CubePath, con al menos 1 GB de RAM. - Un usuario no root con privilegios `sudo`. - Un dominio o subdominio (en esta guía, `your_domain`) con un registro DNS A que apunte a la IP pública del servidor. - Los puertos 80 y 443 libres: MeshCentral los usará directamente, así que no debe haber Nginx ni Apache escuchando en ellos. ## Paso 1: Instalar Node.js MeshCentral es una aplicación Node.js. Instala la versión LTS actual desde el repositorio de NodeSource. Descarga primero el script de configuración para poder revisarlo antes de ejecutarlo: ```bash curl -fsSL https://deb.nodesource.com/setup_22.x -o nodesource_setup.sh less nodesource_setup.sh ``` El script añade el repositorio de NodeSource con su clave en `/etc/apt/keyrings`. Ejecútalo e instala Node.js: ```bash sudo bash nodesource_setup.sh sudo apt install -y nodejs ``` Comprueba las versiones instaladas: ```bash node --version npm --version ``` ```output v22.x.x 10.x.x ``` ## Paso 2: Crear el usuario y el directorio de MeshCentral Ejecutar MeshCentral como root es innecesario y peligroso. Crea un usuario de sistema con su directorio de trabajo en `/opt/meshcentral`: ```bash sudo useradd --system --create-home --home-dir /opt/meshcentral --shell /usr/sbin/nologin meshcentral ``` Instala el paquete `meshcentral` de npm dentro de ese directorio y como ese usuario. Es importante que el usuario `meshcentral` sea dueño de `node_modules`, porque el servidor descarga módulos adicionales la primera vez que arranca. El directorio no es accesible para tu usuario, así que el `cd` se hace dentro de la shell de `meshcentral`: ```bash sudo -u meshcentral -H bash -c 'cd /opt/meshcentral && npm install meshcentral' ``` Comprueba que el paquete está en su sitio: ```bash sudo -u meshcentral node -p "require('/opt/meshcentral/node_modules/meshcentral/package.json').version" ``` ```output 1.x.x ``` ## Paso 3: Configurar el dominio y Let's Encrypt MeshCentral lee su configuración de `meshcentral-data/config.json`. Crea el directorio: ```bash sudo -u meshcentral mkdir -p /opt/meshcentral/meshcentral-data ``` Abre el archivo de configuración: ```bash sudo -u meshcentral nano /opt/meshcentral/meshcentral-data/config.json ``` Pega el siguiente contenido, sustituyendo `your_domain` por tu dominio y `your_email@example.com` por un correo real para los avisos de Let's Encrypt: ```json { "settings": { "cert": "your_domain", "port": 443, "redirPort": 80 }, "domains": { "": { "title": "MeshCentral", "newAccounts": false } }, "letsencrypt": { "email": "your_email@example.com", "names": "your_domain", "production": true } } ``` Qué hace cada bloque: - `cert`: el nombre DNS del servidor. Los agentes lo usan para conectarse, así que debe ser el dominio definitivo. - `port` y `redirPort`: MeshCentral sirve HTTPS en el 443 y usa el 80 para redirigir a HTTPS y responder al reto HTTP de Let's Encrypt. - `newAccounts: false`: nadie podrá registrarse desde la página de inicio. Crearás la cuenta de administrador por línea de comandos. - `letsencrypt`: activa el cliente ACME integrado. Con `production` a `false` usaría el entorno de pruebas de Let's Encrypt, útil si quieres probar sin gastar el límite de emisiones. ## Paso 4: Crear el servicio systemd Crea la unidad de systemd: ```bash sudo nano /etc/systemd/system/meshcentral.service ``` Añade este contenido: ```ini [Unit] Description=MeshCentral Server After=network-online.target Wants=network-online.target [Service] Type=simple User=meshcentral Group=meshcentral WorkingDirectory=/opt/meshcentral ExecStart=/usr/bin/node /opt/meshcentral/node_modules/meshcentral AmbientCapabilities=CAP_NET_BIND_SERVICE Restart=always RestartSec=10 [Install] WantedBy=multi-user.target ``` `AmbientCapabilities=CAP_NET_BIND_SERVICE` permite al proceso escuchar en los puertos 80 y 443 sin ejecutarse como root, y solo afecta a este servicio, no a todos los programas Node.js del sistema. Antes de arrancarlo, abre los puertos en UFW. Incluye SSH para no perder el acceso: ```bash sudo ufw allow OpenSSH sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable ``` Recarga systemd, habilita el servicio y arráncalo: ```bash sudo systemctl daemon-reload sudo systemctl enable --now meshcentral ``` El primer arranque tarda un par de minutos: MeshCentral instala dependencias, genera sus certificados internos y solicita el de Let's Encrypt. Sigue el proceso en el registro: ```bash sudo journalctl -u meshcentral -f ``` Cuando veas líneas parecidas a estas, pulsa `Ctrl+C`: ```output MeshCentral HTTP redirection server running on port 80. MeshCentral HTTPS server running on your_domain:443. ``` Comprueba desde el propio servidor que el certificado es válido (sin `-k`): ```bash curl -sI https://your_domain | head -n 1 ``` ```output HTTP/1.1 200 OK ``` > Nota: si Let's Encrypt todavía no ha emitido el certificado, MeshCentral sirve uno autofirmado y `curl` fallará con un error de certificado. Espera unos minutos y revisa el registro; el certificado se guarda en `meshcentral-data/letsencrypt` y se renueva solo. ## Paso 5: Crear la cuenta de administrador Como el registro público está desactivado, crea la cuenta con la propia herramienta de MeshCentral. Para evitar que la base de datos se abra desde dos procesos a la vez, detén primero el servicio: ```bash sudo systemctl stop meshcentral ``` Crea el usuario sustituyendo `your_strong_password` y el correo por los tuyos: ```bash sudo -u meshcentral node /opt/meshcentral/node_modules/meshcentral --createaccount admin --pass 'your_strong_password' --email your_email@example.com ``` Promuévelo a administrador del sitio y vuelve a arrancar el servicio: ```bash sudo -u meshcentral node /opt/meshcentral/node_modules/meshcentral --adminaccount admin sudo systemctl start meshcentral ``` Abre `https://your_domain` en el navegador e inicia sesión con `admin`. Lo primero que conviene hacer es activar la autenticación en dos pasos en **My Account** > **Account Security**. > Consejo: la contraseña queda en el historial de la shell. Bórrala con `history -d` seguido del número de la línea, o cámbiala después desde el panel. ## Paso 6: Crear un grupo y conectar el primer agente Los equipos se organizan en grupos de dispositivos, y cada grupo tiene su propio instalador de agente. 1. En el panel, pulsa **Add Device Group**, ponle un nombre (por ejemplo, `servidores`) y deja el tipo **Manage using a software agent**. 2. Dentro del grupo, pulsa **Add Agent** y elige el sistema operativo del equipo que quieres gestionar. 3. Para Linux, el panel muestra un comando de instalación que ya incluye la URL de tu servidor y el identificador del grupo. Cópialo tal cual. Ejecuta ese comando en el equipo que quieres gestionar (no en el servidor de MeshCentral, salvo que también quieras gestionarlo). El instalador crea el servicio `meshagent`. Comprueba que está activo: ```bash sudo systemctl status meshagent ``` ```output ● meshagent.service - meshagent background service Loaded: loaded (/lib/systemd/system/meshagent.service; enabled; preset: enabled) Active: active (running) since ... ``` A los pocos segundos el equipo aparece en el grupo del panel. Selecciónalo para usar las pestañas **Terminal** (shell remota), **Files** (explorador de archivos) y, en equipos con entorno gráfico, **Desktop**. Para Windows y macOS el proceso es el mismo: descarga el instalador desde **Add Agent** y ejecútalo en el equipo. ## Paso 7: Dar acceso a otros técnicos Para que otra persona use el panel sin ser administradora, créale una cuenta desde **My Users** > **Add User**. Después, abre el grupo de dispositivos, entra en sus detalles y añade a ese usuario en la sección de permisos, marcando solo lo que necesite (por ejemplo, terminal y archivos, pero no escritorio remoto). Así cada técnico solo ve los grupos que le has asignado. ## Solución de problemas **El servicio no arranca o se reinicia en bucle.** Consulta las últimas líneas del registro: ```bash sudo journalctl -u meshcentral --no-pager -n 50 ``` Un error `EACCES` al escuchar en el puerto 80 o 443 indica que falta `AmbientCapabilities` en la unidad; `EADDRINUSE` indica que otro servicio (normalmente Nginx o Apache) ocupa el puerto. Compruébalo con: ```bash sudo ss -tlnp | grep -E ':(80|443) ' ``` **El certificado de Let's Encrypt no se emite.** El reto HTTP necesita que `http://your_domain` llegue al puerto 80 de este servidor. Verifica que el registro A apunta a la IP correcta con `dig +short your_domain` y que UFW permite el puerto 80. **Los agentes no se conectan tras cambiar el dominio.** El valor de `cert` va incrustado en los agentes instalados. Si lo cambias, tendrás que reinstalar los agentes con el comando nuevo del panel. ## Conclusión Tienes MeshCentral funcionando como servicio en Ubuntu 24.04, con HTTPS de Let's Encrypt, el registro público cerrado y un primer equipo gestionado. Como siguientes pasos, puedes desplegar el agente en el resto de tus servidores con el mismo comando del grupo, activar la autenticación en dos pasos para todos los usuarios y programar una copia de seguridad del directorio `/opt/meshcentral/meshcentral-data`, que contiene la base de datos y los certificados.