• Администрирование
  • Установка и настройка системы удалённого доступа MeshCentral

    #Что такое MeshCentral

    MeshCentral — это универсальная платформа для управления компьютерами с открытым исходным кодом. Разместив собственный сервер MeshCentral, можно удалённо управлять компьютерами из любой точки мира. Платформа обеспечивает удобный веб-доступ к рабочему столу, управление терминалами и управление файлами. Установить сервер можно на Linux или Windows машине, внутри локальной сети или на сервере в Интернет-сети. На управляемые компьютеры нужно установить агента. Агенты есть под Windows, Mac, Linux, Android Администрировать можно отовсюду, так как для этого нужен только браузер для входа на сервер. Мне показалось это удобным и интересным решением для удалённого доступа.

    Установлю на чистый новый виртуальный сервер с Ubuntu 24 с процессором 1 ядром и 2Гб памяти.

    #Установка MeshCentral

    Подключаюсь терминалом как root и начинаю установку.

    Добавляю нового пользователя, пусть будет meshboss, прописываю ему пароль

    adduser meshboss
    info: Adding user `meshboss' ...
    info: Selecting UID/GID from range 1000 to 59999 ...
    info: Adding new group `meshboss' (1000) ...
    info: Adding new user `meshboss' (1000) with group `meshboss (1000)' ...
    info: Creating home directory `/home/meshboss' ...
    info: Copying files from `/etc/skel' ...
    New password:
    Retype new password:
    passwd: password updated successfully
    Changing the user information for meshboss
    Enter the new value, or press ENTER for the default
            Full Name []:
            Room Number []:
            Work Phone []:
            Home Phone []:
            Other []:
    Is the information correct? [Y/n]
    info: Adding new user `meshboss' to supplemental / extra groups `users' ...
    info: Adding user `meshboss' to group `users' ...
    

    Нового пользователя meshboss определяю в группу sudo

    usermod -aG sudo meshboss
    

    Выхожу из-под root и перелогиниваюсь как meshboss

    login as: meshboss
    password:
    

    MeshCentral написан на javascript и запускается из-под node.js. Текущей версии нужен node.js не ниже 20. Устанавливаю node.js

    sudo apt install -y curl apt-transport-https ca-certificates gnupg
    
    curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
    
    sudo apt install -y nodejs
    

    Устанавливаю пакетный менеджер npm

    sudo apt install -y npm
    

    Проверяю версии

    node -v && npm -v
    
    v24.16.0
    9.2.0
    

    По-умолчанию порты ниже 1024 не прослушиваются, нужно разрешить работу с ними для node.js. Узнаю куда установлен node.js и даю разрешение для него.

    whereis node
    node: /usr/local/bin/node /usr/include/node /usr/share/man/man1/node.1.gz
    sudo setcap cap_net_bind_service=+ep /usr/local/bin/node
    

    Дальше устанавливаю сам MeshCentral в отдельную папку. Создаю папку, перехожу в неё.

    sudo mkdir -p /opt/meshcentral
    cd /opt/meshcentral
    

    Устанавливаю в неё MeshCentral.

    npm install meshcentral
    

    Запускаю сервер MeshCentral в первый раз. Первый вывод информации от сервера отличается от последующих запусков. Сервер уже рабочий и теоретически им можно уже пользоваться.

    node ./node_modules/meshcentral
    
    MeshCentral HTTP redirection server running on port 80.
    MeshCentral v1.2.0, LAN mode.
    Generating certificates, may take a few minutes...
    Generating root certificate...
    Generating HTTPS certificate...
    Generating MeshAgent certificate...
    Generating code signing certificate...
    Generating Intel AMT MPS certificate...
    MeshCentral v1.2.0, LAN mode.
    Code signed MeshCmdARM64.exe.
    Code signed MeshService64.exe.
    Code signed MeshService.exe.
    Code signed MeshServiceARM64.exe.
    Code signed MeshCmd.exe.
    Code signed MeshCmd64.exe.
    Server has no users, next new account will be site administrator.
    MeshCentral HTTPS server running on port 443.
    

    Если зайти по адресу сервера, то уже видим окно для логина и создания нового пользователя. Если его сейчас создать, то это будет юзер с правами администрирования. Не нужно сейчас создавать, буду настраивать дальше. MeshCentral логин

    #Настройка MeshCentral для запуска как сервис

    Чтобы вручную не запускать MeshCentral при перезагрузке или включении сервера, надо добавить запуск как сервис. Создаю конфигурацию для запуска в виде файла /etc/systemd/system/meshcentral.service с содержимым:

    [Unit]
    Description=MeshCentral Server
    [Service]
    Type=simple
    LimitNOFILE=1000000
    ExecStart=/usr/local/bin/node /opt/meshcentral/node_modules/meshcentral
    WorkingDirectory=/opt/meshcentral
    Environment=NODE_ENV=production
    User=meshboss
    Group=meshboss
    Restart=always
    # Restart service after 10 seconds if node service crashes
    RestartSec=10
    # Set port permissions capability
    AmbientCapabilities=cap_net_bind_service
    [Install]
    WantedBy=multi-user.target
    

    где User, Group имя моего пользователя (см. выше),

    /usr/local/bin/node папка куда установился node.js,

    /opt/meshcentral/node_modules/meshcentral папка куда установился код сервера (см. выше)

    Дальше включаю новый сервис и запускаю его

    sudo systemctl enable meshcentral.service
    
    sudo systemctl start meshcentral.service
    

    проверяю работает или нет, если нет будет вывод ошибок и их надо будет поправить.

    systemctl status meshcentral.service
    
     meshcentral.service - MeshCentral Server
         Loaded: loaded (/etc/systemd/system/meshcentral.service; enabled; preset: enabled)
         Active: active (running) since Mon 2026-06-01 13:27:30 MSK; 4s ago
       Main PID: 13417 (MainThread)
          Tasks: 22 (limit: 2316)
         Memory: 165.4M (peak: 203.2M)
            CPU: 4.017s
         CGroup: /system.slice/meshcentral.service
                 ├─13417 /usr/local/bin/node /opt/meshcentral/node_modules/meshcentral
                 └─13429 /usr/local/bin/node --disable-proto=delete /opt/meshcentral/node_modules/meshcentral --launch 13417
    
    node[13417]: MeshCentral HTTP redirection server running on port 80.
    node[13417]: MeshCentral v1.2.0, Hybrid (LAN + WAN) mode, Production mode.
    node[13417]: MeshCentral Intel(R) AMT server running on <IP>:4433.
    node[13417]: MeshCentral HTTPS server running on <IP>:443.
    

    Останавливаю MeshCentral

    sudo systemctl stop meshcentral.service
    

    #Настройка MeshCentral для работы с MongoDB

    Устанавливаю сертификат

    curl -fsSL https://pgp.mongodb.com/server-8.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg --dearmor
    

    Добавляю репозиторий для текущей версии Ubuntu (noble)

    #Add the official MongoDB repository (replace noble with your Ubuntu version if different, e.g., jammy for 22.04):
    echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
    

    Обновляю индексы репозитория и запускаю установку MongoDB

    sudo apt-get update
    
    sudo apt-get install -y mongodb-org
    

    Если установка прошла удачно, добавляю сервис в автозагрузку

    sudo systemctl enable mongod
    

    Запускаю сервер баз данных MongoDB:

    sudo systemctl start mongod
    

    Проверяю статус сервиса:

    systemctl status mongod
    
     mongod.service - MongoDB Database Server
         Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; preset: enabled)
         Active: active (running) since Mon 2026-06-01 12:32:31 MSK; 13s ago
           Docs: https://docs.mongodb.org/manual
       Main PID: 12472 (mongod)
         Memory: 90.0M (peak: 90.2M)
            CPU: 919ms
         CGroup: /system.slice/mongod.service
                 └─12472 /usr/bin/mongod --config /etc/mongod.conf
    

    MongoDb работает, теперь нужно прописать строчку в конифгурацию MeshCentral /opt/meshcentral/meshcentral-data/config.json. В раздел settings добавляю строчку "MongoDb": "mongodb://127.0.0.1:27017/meshcentral",

    {
      "$schema": "https://raw.githubusercontent.com/Ylianst/MeshCentral/master/meshcentral-config-schema.json",
      "__comment1__": "This is a simple configuration file, all values and sections that start with underscore (_) are ignored. Edit a section and remove the _ in front of the name. Refer to the user's guide for details.",
      "__comment2__": "See node_modules/meshcentral/sample-config-advanced.json for a more advanced example.",
      "settings": {
        "MongoDb": "mongodb://127.0.0.1:27017/meshcentral",
        "_cert": "myserver.mydomain.com",
        "_WANonly": true,
        "_LANonly": true,
        "_sessionKey": "MyReallySecretPassword1",
        "_port": 443,
        "_aliasPort": 443,
        "_redirPort": 80,
        "_redirAliasPort": 80
      },
      "domains": {
        "": {
          "_title": "MyServer",
          "_title2": "Servername",
          "_minify": true,
          "_newAccounts": true,
          "_userNameIsEmail": true,
          "softwareInventory": true	
        }
      },
      "_letsencrypt": {
        "__comment__": "Requires NodeJS 8.x or better, Go to https://letsdebug.net/ first before trying Let's Encrypt.",
        "email": "myemail@mydomain.com",
        "names": "myserver.mydomain.com",
        "skipChallengeVerification": true,
        "production": false
      }
    }
    

    Запускаю MeshCentral:

    sudo systemctl start meshcentral.service
    

    проверяю его работу:

    systemctl status meshcentral.service
    
     meshcentral.service - MeshCentral Server
         Loaded: loaded (/etc/systemd/system/meshcentral.service; enabled; preset: enabled)
         Active: active (running) since Mon 2026-06-01 13:27:30 MSK; 4s ago
       Main PID: 13417 (MainThread)
          Tasks: 22 (limit: 2316)
         Memory: 165.4M (peak: 203.2M)
            CPU: 4.017s
         CGroup: /system.slice/meshcentral.service
                 ├─13417 /usr/local/bin/node /opt/meshcentral/node_modules/meshcentral
                 └─13429 /usr/local/bin/node --disable-proto=delete /opt/meshcentral/node_modules/meshcentral --launch 13417
    
    node[13417]: MeshCentral HTTP redirection server running on port 80.
    node[13417]: MeshCentral v1.2.0, Hybrid (LAN + WAN) mode, Production mode.
    node[13417]: MeshCentral Intel(R) AMT server running on <IP>:4433.
    node[13417]: MeshCentral HTTPS server running on <IP>:443.
    

    #Настройка MeshCentral после запуска

    В браузере перехожу по ip адресу сервера и создаю первую учётную запись, она же будет администратором сервера. MeshCentral логин

    Первый вход в систему. Тут нужно создать группу устройств. Это просто логическое деление всех подключаемых устройств, к примеру по офисам. MeshCentral группа устройств

    А дальше самое интересное - добавить управляемое устройство через установку агента на него. Жму ссылку Добавить агент и выбираю нужного агента для скачивания. MeshCentral скачивание агента MeshCentral скачивание агента Скачиваю файл с дистрибутивом агент под нужную ОС и теперь его нужно запустить на целевом компьютере. Вижу что-то вроде этого: MeshCentral установка агента После установки агента, устройство сразу видно в панели сервера MeshCentral устройство в панели сервера Во так выглядит компьютер в окне удалённого управления MeshCentral компьютер в окне удалённого управления

    также успешно установил агента на другой Windows компьютер по сети через psexec для этого нужно агента запускать с ключом -fullinstall. Что-то типа этого:

    .\psexec -i \\COMP_NAME -c meshagent64.exe -fullinstall
    

    #Дальнейшие возможные шаги

    Получил работающий MeshCentral сервер к которому есть доступ по IP. Что можно было бы ещё настроить:

    • Настроить на работу из-под DNS имени
    • В MeshCentral есть функционал обмена сообщениями с поддержкой Telegram, XMPP и других сервисов
    • Настройка двухфакторной аутентификации к серверу

    Документация по MeshCentral

    profile image of Wagood

    Wagood

    Wagood - это Гаврилов Алексей, веб-разработчик и программист. Имеет большой опыт в web-разработке, специализируется на backend-разработке средствами языка PHP. Акцент на работу в стеке Laravel и его экосистемы (Livewire, AlpineJS, Filament, Moonshine, API, Vue.js/Inertia.js, очереди, кеширование, поиск).

    ещё от Wagood