3x-ui 式共享节点改造:nodes 状态机 + nodeClients 各自凭据

- 移除 VMess 协议
- VLESS/SS2022 按用户流量统计(AnyTLS 日志解析,SS 节点级)
- sing-box v2ray_api stats 支持
- 内存优化:面板 128M,agent 64M,sing-box 64M
This commit is contained in:
Muse
2026-10-19 22:23:40 +08:00
parent 1678f766ac
commit 084afeb8f4
35 changed files with 2142 additions and 1749 deletions
+3 -3
View File
@@ -6,8 +6,8 @@
2. 编排器为每位客户生成独立凭据,并从各服务器端口池分配端口。
3. 转发线路为每位客户生成一个出口资源和一个或多个入口资源;单机直连只生成入口资源。
4. Agent 通过 HTTPS 主动轮询任务,控制面无需登录目标机。
5. Agent 把资源片段写入 `/etc/nexusgate/xray/resources/`,合并为完整配置。
6. Agent 运行 `xray run -test`;只有通过校验才替换生效配置并重启 Xray。
5. Agent 把资源片段写入 `/etc/nexusgate/agent/resources/`,合并为完整 sing-box 配置。
6. Agent 运行 `sing-box check`;只有通过校验才替换生效配置并重启 sing-box。
7. Agent 回报 Reality 公钥、任务结果、心跳、流量增量和 IP 观察。
## 数据路径
@@ -37,7 +37,7 @@ flowchart LR
## 故障行为
- 新配置校验失败:删除或恢复刚修改的资源片段,不切换运行配置。
- Xray 重启失败:恢复上一份完整配置并再次尝试启动。
- sing-box 重启失败:恢复上一份完整配置并再次尝试启动。
- Agent 离线:控制面保留任务;运行任务租约超时后自动重试,最多 3 次。
- Agent 重新注册:撤销旧密钥,为该设备重新生成已有部署的对账任务。
- 任务失败:部署标记为失败、线路标记为异常,可只修复失败项或完整重建。
+3 -3
View File
@@ -22,7 +22,7 @@
## v0.4 — 订阅、诊断与 TLS(已完成)
- Agent 心跳与 Xray 启动故障隔离;首次心跳验证、`ng-agent doctor`、部署前在线检查
- Agent 心跳与 sing-box 启动故障隔离;首次心跳验证、`ng-agent doctor`、部署前在线检查
- 紧凑管理列表与本地二维码;Mihomo 智能分流和 Surge 兼容节点输出
- VLESS WS TLS:节点域名、证书签发或导入、自动续签钩子和下发前验证
@@ -31,7 +31,7 @@
- sing-box 独立服务及 `with_v2ray_api` 构建安装器
- AnyTLS 直连、AnyTLS → VLESS TCP / SS2022 等转发及客户端订阅
- TLS 证书校验与续签、独立双向计数和经认证来源 IP 观察
- Xray 与 sing-box 分别下发及失败回滚,原资源保留
- sing-box 下发及失败回滚,原资源保留
## 后续:节点协议、凭据和规模
@@ -39,7 +39,7 @@
- 可编辑的自定义订阅模板
- Hysteria2 和 AnyTLS 的真实客户端兼容性与跨发行版压力测试
- VLESS XHTTP/gRPC、Trojan、TUIC 等协议适配器
- Xray/sing-box Release 校验和验证与分批升级
- sing-box Release 校验和验证与分批升级
- 控制面敏感字段静态加密
- 出口池、延迟/可用性探测、加权分流与故障转移
+4 -4
View File
@@ -4,7 +4,7 @@
- 控制面管理员是高权限主体,可以查看客户链接并下发配置。
- Agent 拥有其绑定服务器的配置权限,但不能领取其他服务器任务。
- Xray-core 与 sing-box 分别运行;控制面不承载客户数据流量。
- sing-box 独立运行;控制面不承载客户数据流量。
- 服务器 root 用户仍可读取本机凭据和流量日志,这是自托管系统无法消除的权限边界。
## 已实现控制
@@ -24,12 +24,12 @@
## 当前限制
- 客户协议凭据和待执行配置任务保存在权限为 `0600` 的控制面数据文件中,尚未做字段级静态加密。备份同样包含这些凭据。
- 节点 IP 上限依赖 Xray 访问日志及 sing-box 已认证会话日志的滚动观察,并非精确的同时在线连接数;修改日志格式、关闭访问日志、UDP-only 流量或客户端经过同一 NAT 会影响结果。
- 节点 IP 上限依赖 sing-box 已认证会话日志的滚动观察,并非精确的同时在线连接数;修改日志格式、关闭日志、UDP-only 流量或客户端经过同一 NAT 会影响结果。
- 设备上限按订阅请求的 `X-Device-ID`、`X-Client-ID` 或 User-Agent 估计,只拒绝新的订阅下载。已导入的节点凭据可以继续使用,客户端也可自行更换标识;尚无每设备凭据与撤销机制。
- 订阅令牌是高熵随机值,但控制面数据/备份中为便于管理员查看而保存明文;必须保护备份及管理员会话。重置订阅地址不会撤销客户已经导入的节点凭据。
- IP/流量限制依赖 Agent 周期性日志与上报,不能作为瞬时硬限制;共享 NAT、动态 IP 会影响统计。需要严格设备隔离时应给每台设备发不同凭据。
- Agent 到控制面依赖公开 CA 的 HTTPS 校验,尚未增加双向 TLS。
- Xray Release 下载目前依赖 GitHub HTTPS,尚未校验发布包的签名或预期哈希。
- sing-box 构建产物目前随发布包分发;未来如改走 Release 下载,需校验发布包的签名或预期哈希。
## 部署建议
@@ -38,4 +38,4 @@
- 缩小服务器端口池,并仅在云安全组/防火墙中放行实际需要的 TCP/UDP 范围。
- 定期离线保存 `ng backup` 生成的文件,并对备份再次加密。
- 不要在聊天、工单或公开仓库中粘贴注册令牌、Agent Key、备份或客户链接。
- 首次上线前在测试链路验证 Xray 版本、Reality SNI、UDP 和回滚行为。
- 首次上线前在测试链路验证 sing-box 版本、Reality SNI、UDP 和回滚行为。