【工具分享】ToDesk、向日葵、TeamViewer收费怎么办?免费搭建一台自己的远程控制服务器
MeshCentral 是一个功能极强、开源的远程管理与控制平台,可以替代 ToDesk、向日葵、TeamViewer 等,并且支持浏览器直接访问远程桌面(RDP/VNC/Terminal),非常适合企业或实验室自建远程管理系统。下面我会为你系统讲解:
🧩 一、MeshCentral 简介
MeshCentral 是由 Intel 开发并开源(GPLv3)的远程设备管理平台。
它支持:
- 💻 远程桌面(RDP、VNC、WebRTC、KVM)
- 💬 远程命令行(SSH、Shell、CMD、PowerShell)
- 📁 文件传输(浏览器上传/下载、剪贴板同步)
- 🖥️ 多用户、多设备分组管理
- 🌍 完全 Web 化(通过浏览器控制,不需安装客户端端口)
- 🔒 可选 TLS/HTTPS、自签证书、双因子登录等安全机制
它的核心优势是:
通过 WebSocket + MeshAgent 实现远程控制,部署简单,可完全离线运行。
🧠 二、系统原理与架构说明
MeshCentral 由三个主要组件组成:
1️⃣ MeshCentral Server(主控服务器)
- 用 Node.js 编写,运行在 Linux / Windows / macOS 上。
- 提供 Web 管理界面、API 服务、设备中继(Relay)功能。
- 管理用户账户、设备组、权限策略等。
- 负责通过 WebSocket 与客户端(MeshAgent)通信。
2️⃣ MeshAgent(设备端客户端)
- 安装在被控主机(Windows、Linux、macOS)。
- 长连接到 MeshCentral 服务器(默认使用 WebSocket over TLS)。
- 负责采集系统信息、屏幕图像、执行命令、传输文件。
- 支持 RDP/VNC/Terminal 等多种控制通道。
3️⃣ Web Browser(操作端)
- 操作者直接用浏览器访问服务器 Web 页面。
- 控制端 UI 全由服务器提供(HTML + JS),无插件安装。
- 与 MeshCentral Server 交互,实现实时远程控制。
🔄 通信流程图
┌────────────────────────┐
│ Web 浏览器 │
│ (管理员/操作员 控制端) │
└──────────┬─────────────┘
│ HTTPS / WebSocket
▼
┌────────────────────────┐
│ MeshCentral Server │
│ (Node.js Web 管理平台) │
└──────────┬─────────────┘
│ WebSocket / Relay
▼
┌────────────────────────┐
│ MeshAgent │
│ (被控主机上的客户端) │
└────────────────────────┘
远程桌面画面、命令行输出、文件传输等都通过这条 加密 WebSocket 通道 传输。
⚙️ 三、部署步骤详解(以 Linux 为例)
🧾 前置条件
- 系统:Ubuntu 20.04 / 22.04 / Debian / CentOS
- Node.js ≥ 18.x
- Nginx(可选,反向代理 + HTTPS)
- 一个域名(例如:
mesh.example.com)
🔧 1. 安装 Node.js
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
📦 2. 安装 MeshCentral
sudo npm install meshcentral -g
这会在全局安装 MeshCentral 命令行工具。
🗂️ 3. 创建配置目录
sudo mkdir /opt/meshcentral
cd /opt/meshcentral
sudo meshcentral --install
第一次运行后,会生成:
/opt/meshcentral/
├── meshcentral-data/ # 数据库、证书
├── meshcentral-files/ # 上传文件、代理包
├── meshcentral-backup/ # 备份目录
└── config.json # 主配置文件
⚙️ 4. 编辑配置文件(config.json)
{
"settings": {
"cert": "mesh.example.com",
"WANonly": true,
"Port": 4430,
"AliasPort": 443,
"RedirPort": 80,
"agentPort": 4433,
"TLSOffload": false,
"AllowLoginToken": true
},
"domains": {
"": {
"Title": "My MeshCentral",
"Title2": "Remote Management",
"NewAccounts": true
}
}
}
⚠️ 注意:
cert必须与你的域名一致(否则浏览器警告)。Port为 Web 管理端口(4430);你也可设置 Nginx 反代 443 → 4430。agentPort为客户端连接端口。
🔑 5. 配置 HTTPS(两种方式)
方式一:使用 Let’s Encrypt 自动证书
sudo node node_modules/meshcentral --letsencrypt
方式二:手动配置自签证书
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365
然后在 meshcentral-data/ 下放入:
meshcentral-data/
├── meshcentral.db
├── key.pem
├── cert.pem
▶️ 6. 启动服务
sudo systemctl enable meshcentral
sudo systemctl start meshcentral
访问浏览器:
https://mesh.example.com:4430
首次访问时,注册一个管理员账号。
🖥️ 7. 添加被控主机(安装 MeshAgent)
进入 Web 页面 → “设备组” → “添加设备”
会自动生成安装命令,例如:
wget https://mesh.example.com/meshagents?id=xxxxxxxx
sudo chmod +x meshagent
sudo ./meshagent
Agent 运行后会自动连回服务器并注册。
🧩 四、常用功能说明
| 功能 | 说明 |
|---|---|
| 💻 远程桌面 | 支持 Windows 桌面、Linux 桌面(VNC)、WebRTC |
| 💬 命令行 | 直接打开 PowerShell、CMD、SSH 终端 |
| 📁 文件管理 | 上传、下载、同步、远程删除文件 |
| 🕵️ 系统信息 | CPU、内存、IP、OS、登录用户等 |
| 🧩 设备分组 | 通过“Mesh Groups”分类设备 |
| 🔒 权限管理 | 可配置用户角色、访问策略 |
| 🔔 事件与日志 | 记录远程操作日志、登录记录 |
| 🔁 反向代理 | 可以让远程设备作为跳板访问内部资源 |
| 🔄 自动重连 | Agent 断线后自动重连 MeshCentral |
🧱 五、MeshCentral 工作原理简述
1️⃣ 注册与认证阶段
- Agent 启动后通过 HTTPS/WSS 与服务器建立长连接。
- 使用设备 ID(GUID)与签名密钥认证。
2️⃣ 命令与通道建立
- 当浏览器用户发起远程桌面/终端请求时,MeshCentral 创建“中继通道”。
- 该通道绑定用户与特定 Agent。
3️⃣ 数据传输
- 所有数据流(屏幕像素、文件块、命令输出)都通过服务器转发(除非启用 P2P WebRTC 模式)。
- MeshCentral 自动压缩、加密、分片传输。
4️⃣ 安全机制
- 默认使用 TLS(HTTPS)。
- 可启用双因素认证(2FA)。
- 可使用 JSON Web Token (JWT) 登录。
- 所有操作都有审计日志。
🧰 六、进阶功能
| 功能 | 说明 |
|---|---|
| 🌐 多租户支持 | 支持多域配置(多客户隔离) |
| 🚀 自定义插件 | 可开发 Node.js 模块扩展 MeshCentral |
| 🧱 数据库存储 | 默认使用 NeDB,可换成 MongoDB |
| 🧠 自动化任务 | 可通过脚本远程批量执行命令 |
| 🧩 API 调用 | 提供 REST / WebSocket API 接口,可与 MES / SCADA 系统集成 |
🧭 七、实际部署架构建议
| 部署规模 | 建议架构 |
|---|---|
| 个人 / 小团队 | 单机(MeshCentral + 自签 HTTPS) |
| 中小企业 | MeshCentral + Nginx 反代 + Let’s Encrypt |
| 大型工厂 / 设备集中管理 | MeshCentral + MongoDB + Nginx + 多域(多租户)部署 + 内外网分层(Relay) |
🔒 八、对比 ToDesk / 向日葵 / Guacamole
| 对比项 | MeshCentral | Apache Guacamole | ToDesk / 向日葵 |
|---|---|---|---|
| 远程方式 | Agent(TCP/WebSocket) | RDP/VNC/Telnet | 云中继 |
| 是否开源 | ✅ 是 | ✅ 是 | ❌ 否 |
| 浏览器访问 | ✅ 支持 | ✅ 支持 | ❌ |
| 离线运行 | ✅ 支持 | ✅ 支持 | ❌ |
| 文件传输 | ✅ 有 | ✅ 有 | ✅ 有 |
| 用户分组 | ✅ 有 | ✅ 弱 | ✅ 有 |
| 设备管理 | ✅ 强 | ❌ | ✅ 有限 |
| 自建服务器 | ✅ 支持 | ✅ 支持 | ❌ 不支持 |
| 企业适用性 | ⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐ |
📚 九、参考资料
- 🔗 官方网站:https://meshcentral.com/
- 🔗 官方 GitHub:https://github.com/Ylianst/MeshCentral
- 📘 文档:https://info.meshcentral.com/downloads/MeshCentral2UserGuide.pdf
本文地址:https://www.yitenyun.com/3257.html
上一篇:字符函数和字符串函数(一)







