0037116edcb2bbd06d8ac42acb596c2220bdeb3b
A forward node's exit target is now a choice: a managed panel server (existing behavior) or a manual landing endpoint — address + port + protocol (VLESS / SS2022 / SOCKS5) + operator-supplied credentials, including third-party nodes the panel does not run. The panel only builds the entry-side sing-box outbound and route rule; there is no exit resource, no exit job, and the node is exit-ready by definition. - model: Node.ExitMode/ExitAddress; manual exits force fixed port mode and skip the exit-server port table entirely - validation: address/port required; per-protocol credential presence; SS2022 passwords must be base64 key material of the method's key length (one PSK segment or serverKey:userKey) — the exact form sing-box accepts, rejected up front instead of failing at deploy - orchestration: resource building, deploy validation and rebuilds all branch on manualExit; switching managed->manual queues removal of the old exit resource, manual->managed mints a fresh exit resource id (deploy validation previously dereferenced the nil exit server — regression test locks the fix) - UI: exit target segmented control, link paste box that parses vless:// / ss:// / socks5:// links into the form, per-protocol credential fields (blank keeps the stored value on edit) - golden: new manualCreate/manualAssign/manualDeploy/manualJobs/ manualNodes sections — exactly one entry-side job whose outbound targets the manual address; all prior sections unchanged - the generated combined sing-box config passes the real sing-box 1.13.21 check
NexusGate(二开版)
基于 NexusGate v0.6.8 的二次开发:3x-ui 式共享节点 + 全面 sing-box 化。主控面板和 Agent 弃用 xray,只用 sing-box,内存占用大幅降低。
架构
- 主控:Node.js 面板(约 61MB),跑在 OpenWrt 路由器或任意 Linux 上。管理节点、客户、订阅,下发配置到各 Agent。
- Agent:跑在节点机上,通过 token 注册。管理 sing-box 进程,上报心跳和按用户流量。
与原版的区别
- 移除 VMess 协议
- 3x-ui 式共享节点:nodes 状态机 + 每个客户独立凭据(
ng:<customerId>身份) - 全面 sing-box:不再捆绑 xray
- 按用户流量统计:AnyTLS 走日志解析,SS 走节点级
- 内存优化:面板
node --max-old-space-size=128 --optimize-for-size;Agent 为 Go 静态二进制(约 12MB,节点机无需 Node.js);sing-boxGOMEMLIMIT=64MiB GOGC=50
安装
主控
# 克隆仓库
git clone https://git.881218.xyz/rogue/NexusGate.git /opt/nexusgate
cd /opt/nexusgate
# 安装依赖并启动
node --max-old-space-size=128 --optimize-for-size server.js
面板地址:http://IP:8787,默认账号 admin。
OpenWrt 上用 procd 常驻,见 scripts/ 目录。
Agent(节点机)
- 在主控面板「服务器」→「添加设备」,填好节点信息
- 点该设备的「注册」按钮,复制弹出的一次性注册命令(token 30 分钟内有效)
- 在节点机上以 root 运行该命令
curl -fsSL https://git.881218.xyz/rogue/NexusGate/raw/branch/main/scripts/agent-install.sh | bash -s -- --server https://主控域名 --token 你的TOKEN
Agent 是 Go 静态二进制,安装时从 Gitea Release 下载,节点机不再需要安装 Node.js。(如需回退旧版 Node Agent,安装时加环境变量 NG_AGENT_IMPL=node。)
支持的协议
VLESS / SS2022 / SS经典 / SOCKS5 / Hysteria2 / AnyTLS
内存占用(实测 2026-10-20,三台节点机)
| 组件 | 内存 |
|---|---|
| 主控面板 | 约 61MB(OpenWrt 路由器) |
| Agent | 约 12MB(Go 静态二进制) |
| sing-box | 16–36MB |
License
继承上游 NexusGate
Releases
2
sing-box-v1.13.21
Latest
Languages
Go
45.9%
JavaScript
45.4%
Shell
5.6%
CSS
2.7%
HTML
0.4%