基本信息
仓库地址:https://github.com/Ylianst/MeshCentral
官方首页:https://www.meshcommander.com/meshcentral2
开发语言:MeshCentral 中心服务器采用 NodeJS 开发(UI 是 JavaScript),另外需要在每个远程设备上安装 MeshAgent 用于控制设备,该组件使用 C 语言开发。
工作原理:MeshCentral 作为中心服务器应当部署在具有公网 IP 的节点上,这样方便随时随地管理远程设备;如果你只需要在本地局域网内管理其它设备,也可以部署在本地节点;如果你的家用宽带有自己固定的公网 IP ,部署在家里的电脑上也是可以的;总之,你需要部署一个具有广泛可达的通信地址的中心服务器,这里推荐使用公有云厂商的羊毛版服务器。MeshAgent 安装在你的远程节点上,远程节点的操作系统可以是 macOS 、Windows 或者 Linux。MeshAgent 向中心服务器注册自己的基本信息并通过 WebSocket 协议与中心服务器保持通信,如果开启了 WebRTC 模式,还会使用 STUN 协议获取节点的公网通信地址并上报给中心服务器。当你在笔记本电脑上通过浏览器打开控制界面尝试去连接远程节点时,若未开启 WebRTC,所有的通信流量都要经过中心服务器中转,这样不仅会增加中心服务器的负担,通信速率也将受到中心服务器带宽能力的限制,而在 WebRTC 模式下,你的笔记本可以和远程节点直连,这无疑是一种更高效地工作模式,在运气好的情况下(两端上行带宽都比较高)可以获得极佳的远程桌面清晰度和流畅度。
官方文档:该项目的另一大优点是文档较为详细,安装指南:MeshCentral2InstallGuide-0.0.9.pdf;用户手册:MeshCentral2UserGuide-0.2.9.pdf。
安装部署
MeshCentral 的功能较为丰富,这里我仅结合自己的使用需求实施较为简单的部署。MeshCentral 部署在我之前购买的阿里云虚拟机上,其基本信息如下,目前已稳定运行了两年,我的博客也部署在同一台虚拟机上:
使用 nvm 安装 NodeJS :
1 | curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash |
使用 node 安装 meshcentral :
1 | npm install -g nrm |
创建 systemd 服务描述文件:
1 | cat>/etc/systemd/system/meshcentral.service<<EOF |
启动服务:
1 | # 启动服务 |
meshcentral 默认监听在 8080 和 8443 端口,8080 端口可使用 http 访问,8443 端口需使用 https 访问,默认情况下,http 访问 8080 端口会重定向至 8443 https 访问。由于我们使用的私有证书,浏览器会提示非安全链接,忽略即可。初次登录时由于无用户,所以会提示创建用户,并授予该用户管理员权限。
登录后需要先创建设备组,填好设备组名称,设备组类型使用默认的 “Manage using a software agent” 即可, 如下:
然后向设备组中添加设备,根据操作系统选择部署 MeshAgent 的方式,若远程节点操作系统为 Linux ,则会生成一个脚本,到远程节点上去执行该脚本即可,Windows 和 macOS 则是下载一个安装包到节点上部署。
开启 WebRTC
操作使用体验
远程桌面
终端
文件传输