连接其他机器
一个面板可以同时管理多台机器:每台被控机器上运行一个节点(Daemon),面板集中编排它们。
架构
┌────────────┐ WebSocket / HTTP :24444 ┌────────────┐
浏览器 ─►│ Panel │ ──────────────────────────► │ Daemon A │ 本机
│ :23333 │ ──────────────────────────► │ Daemon B │ 远程机
└────────────┘ └────────────┘
连接由面板主动发起:面板作为 Socket.IO 客户端连接到节点的 24444。节点不需要反向访问面板,因此通常只需保证“面板 → 节点:24444”这一条路径可达。
1. 在被控机上安装节点
用发行包的 daemon-only 变体(elementspanel_linux_daemon_only_release.tar.gz),或直接运行守护进程 Docker 镜像:
# 发行包
tar -xzf elementspanel_linux_daemon_only_release.tar.gz
cd elementspanel/daemon/
npm install --production --no-fund --no-audit
cd ..
./start-daemon.sh
仅组件发行包不包含另一端目录,因此不要运行要求 web/ 与 daemon/ 同时存在的顶层 install.sh。节点需要 Node.js 20.x;Docker 方式无需在宿主机安装 Node。
2. 取得 API Key
在节点上打开 daemon/data/Config/global.json,key 字段就是该节点的 API Key:
{
"ip": "0.0.0.0",
"port": 24444,
"key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
首次启动会自动生成。若为空,可在面板的插件设置里为节点重新生成,或编辑该文件后重启节点。
SECURITY: API Key 等同于该节点的控制权,请勿泄露。它只允许字母与数字。
3. 在面板中添加节点
在面板节点页面点击新建,填写节点的 IP、端口(24444)与上一步的 API Key。保存后面板立即尝试连接,状态会显示在线/离线。
一个节点对应面板 web/data/RemoteServiceConfig/<uuid>.json(源码仓库为 panel/data/…)中的一个文件;删除节点只影响面板侧的记录,不会删除被控机上的实例数据。
4. 放行端口与白名单
-
防火墙:被控机需允许面板所在机器访问
24444。 -
节点白名单:把
whiteListPanelIp设为true后,只有whiteListPanelIps中的地址可以接入;关闭该开关时列表不参与鉴权。 -
节点路径前缀:若节点配置了
prefix,在面板添加节点时也要填写相同前缀(见 网络架构)。
5. 多节点下的插件安装
安装含 Daemon 端的市场插件时,界面会要求选择目标节点。生产节点把插件写入自身的 daemon/plugins/;源码开发节点写入 daemon/data/plugins/。节点侧安装彼此独立:
-
个别节点安装或激活失败,会单独报告,不会回滚面板侧已成功的安装;
-
节点可能需要重启进程才能加载新的后端代码;
-
面板插件与各节点插件分别管理开关;节点开关通过插件管理页向指定节点下发,切换后面板会重连该节点,使新协议处理器可达。
常见问题
- 连不上节点。
-
依次检查:节点是否在运行、
24444是否放行、面板填写的地址/端口是否正确、API Key 是否与daemon/data/Config/global.json完全一致、是否被whiteListPanelIps拦截。 - 节点在线但实例无法启动。
-
节点进程正常不代表实例环境就绪;检查工作目录权限、Java 是否安装、Docker 是否可访问。
- 多节点版本不一致。
-
面板安装成功不等于所有节点都装上了同一版本。以各节点实际报告的版本为准,必要时重启或重新下发。