Instalación de MeshCentral para Gestión Remota
MeshCentral es una plataforma open-source de gestión remota de dispositivos que permite controlar, monitorizar y administrar múltiples equipos desde un panel web centralizado. Con soporte para terminal remota, transferencia de archivos, RDP, escritorio remoto y grupos de dispositivos, MeshCentral es una alternativa completa a soluciones como ManageEngine o ScreenConnect. Esta guía explica cómo instalar MeshCentral en un servidor Linux.
Requisitos Previos
- Ubuntu 20.04+, Debian 11+ o CentOS 8+/Rocky Linux 8+
- Mínimo 512 MB de RAM (1 GB+ recomendado para múltiples dispositivos)
- Node.js 14+
- Puerto 443 (HTTPS) accesible públicamente
- Dominio con DNS apuntando al servidor (recomendado para TLS automático)
Instalación de Node.js
MeshCentral requiere Node.js. Instalar usando NodeSource:
# Ubuntu/Debian - Instalar Node.js 20 LTS
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
# CentOS/Rocky Linux
curl -fsSL https://rpm.nodesource.com/setup_20.x | sudo bash -
sudo dnf install -y nodejs
# Verificar la instalación
node --version
npm --version
Instalación de MeshCentral
# Crear usuario dedicado para MeshCentral
sudo useradd -r -m -d /opt/meshcentral -s /bin/false meshcentral
# Crear directorio de instalación
sudo mkdir -p /opt/meshcentral/meshcentral-data
sudo chown -R meshcentral:meshcentral /opt/meshcentral
# Instalar MeshCentral como usuario meshcentral
sudo -u meshcentral bash -c "cd /opt/meshcentral && npm install meshcentral"
# Verificar la instalación
ls /opt/meshcentral/node_modules/meshcentral/
Crear el servicio systemd:
sudo tee /etc/systemd/system/meshcentral.service << 'EOF'
[Unit]
Description=MeshCentral Server
After=network.target
[Service]
Type=simple
User=meshcentral
WorkingDirectory=/opt/meshcentral
ExecStart=/usr/bin/node node_modules/meshcentral
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable meshcentral
Configuración Inicial
Antes de iniciar, crear el archivo de configuración:
sudo -u meshcentral mkdir -p /opt/meshcentral/meshcentral-data
# Crear configuración básica
sudo -u meshcentral tee /opt/meshcentral/meshcentral-data/config.json << 'EOF'
{
"$schema": "http://info.meshcentral.com/downloads/meshcentral-config-schema.json",
"settings": {
"cert": "tu-dominio.com",
"port": 443,
"redirPort": 80,
"mongoDb": "nedb",
"mongoDbName": "meshcentral"
},
"domains": {
"": {
"title": "Mi Panel de Gestión",
"title2": "MeshCentral",
"newAccounts": false,
"certUrl": "https://tu-dominio.com"
}
}
}
EOF
Iniciar MeshCentral por primera vez (generará certificados TLS automáticamente):
# Iniciar el servicio
sudo systemctl start meshcentral
# Ver los logs del proceso de inicio
sudo journalctl -u meshcentral -f
# Esperar a que aparezca el mensaje "MeshCentral HTTP server running on port 443"
# El primer inicio puede tardar varios minutos para generar certificados
Crear la cuenta de administrador:
# Crear el primer usuario administrador
sudo -u meshcentral node /opt/meshcentral/node_modules/meshcentral --createaccount admin --pass TU_CONTRASENA_SEGURA --adminaccount
# Verificar que el usuario fue creado
sudo -u meshcentral node /opt/meshcentral/node_modules/meshcentral --listaccounts
Configuración con Proxy Inverso Nginx
Si prefieres usar Nginx como proxy inverso (con Let's Encrypt):
# Instalar Nginx y Certbot
sudo apt install -y nginx certbot python3-certbot-nginx # Ubuntu/Debian
# sudo dnf install -y nginx certbot python3-certbot-nginx # CentOS/Rocky
# Obtener certificado SSL
sudo certbot --nginx -d tu-dominio.com
# Configurar MeshCentral para escuchar solo en localhost
# Editar /opt/meshcentral/meshcentral-data/config.json
{
"settings": {
"port": 4430,
"redirPort": 800,
"cert": "tu-dominio.com",
"TLSOffload": "nginx"
}
}
Configuración de Nginx para MeshCentral:
sudo tee /etc/nginx/sites-available/meshcentral << 'EOF'
server {
listen 80;
server_name tu-dominio.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name tu-dominio.com;
ssl_certificate /etc/letsencrypt/live/tu-dominio.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/tu-dominio.com/privkey.pem;
# Soporte WebSocket (requerido por MeshCentral)
location / {
proxy_pass http://127.0.0.1:4430;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_read_timeout 600s;
proxy_send_timeout 600s;
}
}
EOF
sudo ln -s /etc/nginx/sites-available/meshcentral /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
Despliegue de Agentes
Los agentes MeshCentral se instalan en los dispositivos que quieres gestionar:
# Descargar el agente desde el panel web:
# Panel > Grupos de Dispositivos > Agregar > Descargar Agente
# O descargar directamente desde la URL del servidor
wget https://tu-dominio.com/meshagents?id=6&meshid=TU_MESH_ID -O meshagent
# Dar permisos de ejecución
chmod +x meshagent
# Instalar el agente en el sistema
sudo ./meshagent -install
# Verificar que el agente está ejecutándose
sudo systemctl status meshagent
Script de instalación masiva de agentes:
#!/bin/bash
# Instalar el agente MeshCentral en múltiples servidores
SERVIDOR="https://tu-dominio.com"
MESH_ID="TU_MESH_ID_AQUI"
# Descargar el instalador del agente
wget "${SERVIDOR}/meshagents?id=6&meshid=${MESH_ID}" -O /tmp/meshagent
chmod +x /tmp/meshagent
# Instalar
sudo /tmp/meshagent -install
echo "Agente instalado. Estado: $(systemctl is-active meshagent)"
Terminal y Escritorio Remotos
MeshCentral soporta múltiples métodos de acceso remoto desde el panel web:
Terminal remota (shell):
- Seleccionar un dispositivo en el panel
- Clic en "Terminal" para abrir una sesión de terminal interactiva
- Funciona en Linux, macOS y Windows
Escritorio remoto:
- Seleccionar el dispositivo > "Escritorio Remoto"
- Soporta VNC sobre WebSocket
- En Linux, requiere un servidor VNC o Xvfb instalado en el dispositivo
# Instalar soporte de escritorio remoto en el agente (Linux con X11)
sudo apt install -y x11vnc xvfb # Ubuntu/Debian
# El agente MeshCentral gestiona automáticamente la sesión VNC
sudo systemctl restart meshagent
Transferencia de archivos:
- Panel > Dispositivo > "Archivos"
- Explorador de archivos bidireccional
- Soporte de arrastrar y soltar
Control de Acceso Multi-Usuario
# Crear usuarios adicionales (desde la línea de comandos)
sudo -u meshcentral node /opt/meshcentral/node_modules/meshcentral \
--createaccount tecnico1 \
--pass contrasena123
# Crear usuarios desde el panel: Usuarios > Agregar Usuario
# Asignar permisos por grupo de dispositivos
# Panel > Grupos de Dispositivos > Permisos > Agregar Usuario
Configuración de permisos en config.json:
{
"domains": {
"": {
"newAccounts": false,
"userGroups": {
"tecnicos": {
"devicesGroups": ["servidores-web", "bases-de-datos"]
}
}
}
}
}
Solución de Problemas
MeshCentral no inicia:
# Ver logs detallados
sudo journalctl -u meshcentral --no-pager -n 50
# Probar inicio manual para ver errores
sudo -u meshcentral node /opt/meshcentral/node_modules/meshcentral
# Verificar permisos
ls -la /opt/meshcentral/meshcentral-data/
El agente no conecta con el servidor:
# Ver logs del agente
sudo journalctl -u meshagent -f
# Verificar conectividad con el servidor
curl -k https://tu-dominio.com
# Comprobar el estado del agente
sudo /usr/local/mesh/meshagent -state
Certificados TLS no se generan:
# Verificar permisos del directorio de datos
ls -la /opt/meshcentral/meshcentral-data/
# Los certificados se guardan en:
ls /opt/meshcentral/meshcentral-data/*.pem
# Reparar permisos
sudo chown -R meshcentral:meshcentral /opt/meshcentral/
Conclusión
MeshCentral es una plataforma de gestión remota completa y gratuita que puede reemplazar soluciones comerciales costosas. Su instalación en un VPS propio garantiza privacidad total y sin costes por dispositivo, siendo especialmente útil para administrar flotas de servidores Linux de forma centralizada y segura.


