2.3 KiB
2.3 KiB
Go Agent 安装/更新流程(自 v0.6.8 起默认)
Agent 已从 Node.js(agent/agent.js)切换为 Go 静态二进制
(agent-go/,约 6MB,实测 RSS 约 12MB,节点机不再需要安装 Node.js)。
协议、环境变量、状态文件格式与 Node 版完全一致(见 PARITY.md),
可直接接管已有节点的状态。
新装(scripts/agent-install.sh)
- 默认从 GitHub Release 下载二进制:
https://github.com/aaaamoooo/NexusGate/releases/download/agent-v0.6.8/nexusgate-agent-linux-<arch>(<arch>由uname -m决定:x86_64→amd64,aarch64→arm64) - 安装到
/opt/nexusgate-agent/nexusgate-agent(0755)。 - 服务名仍为
nexusgate-agent:- systemd:
systemd/nexusgate-agent.service,EnvironmentFile=/etc/nexusgate/agent.env,ExecStart=/opt/nexusgate-agent/nexusgate-agent,Restart=always。 - OpenRC:
openrc/nexusgate-agent,command指向同一二进制, 脚本内手动 source/etc/nexusgate/agent.env(OpenRC 不读 EnvironmentFile)。
- systemd:
- 其余流程与旧版一致:写
agent.env、注册、安装 sing-box、logrotate、心跳校验。 - 环境变量:
NG_AGENT_RELEASE可覆盖 Release tag;NG_LOCAL_SRC指向本地 仓库时从agent-go/取已构建的二进制(离线/调试用)。
更新(scripts/agent-update.sh / ng-agent update)
脚本按已安装程序自动判断实现:
- 存在
/opt/nexusgate-agent/nexusgate-agent→ Go 路径:先用当前二进制flush-usage落盘流量计数,再下载同一 Release 资产替换二进制、 刷新服务文件并重启,最后校验心跳。 - 只有
agent.js→ Node 路径:保持旧流程(下载 agent.js/run.sh 并node --check);刷新服务文件时会把 ExecStart/command 改回经run.sh启动。
回退到 Node Agent
- 新装时回退:
NG_AGENT_IMPL=node bash agent-install.sh ...(会安装 nodejs 包、部署agent/agent.js+agent/run.sh,服务经 run.sh 启动)。 - 已装 Go 的节点回退:同样用
NG_AGENT_IMPL=node重跑安装脚本, 它会删除 Go 二进制并部署 Node 版(注册信息会重新生成,需用新 token)。
发布清单(Release: agent-v0.6.8)
需上传到 tag agent-v0.6.8 的资产(文件名必须完全一致):
nexusgate-agent-linux-amd64nexusgate-agent-linux-arm64