Files
3x-ui-agent/PANEL-LITE-SPEC.md
T
Muse 5031a70ccb P9(4): remove local-core live-test trio — outbound speed test + egress probe, restart/stop xray endpoints
Per user decision 2026-10-21 (reverses the earlier keep call in
PANEL-LITE-SPEC.md, now amended): the lite panel never runs a local
core, so measuring/probing from the panel host is meaningless.

Backend:
- delete service/outbound probe implementation (probe_http.go and its
  tests) and the TestOutbound/TestOutbounds batch prober; outbound
  traffic accounting (AddTraffic/GetOutboundsTraffic/Reset) unchanged
- drop POST /panel/api/xray/testOutbound + testOutbounds routes and the
  outboundTestUrl setting (get/update plumbing removed; stored rows in
  existing DBs are inert)
- drop POST /panel/api/server/restartXrayService + stopXrayService
  routes/handlers and the node-sync allowlist entry; the service-level
  Stop/RestartXrayService stay for internal import/restore flows
- node-sync allowlist contract test updated to the new inventory

Frontend:
- remove test buttons/mode switch/test-all from outbounds tab, card
  list and table columns; delete TestResultPopover and CountryPill;
  drop the egress/country/latency columns fed by probe results
- remove outboundTestUrl state and save plumbing from useXraySetting
  and the Basics tab field; drop OutboundTestResult schemas
- delete the 15 now-dead i18n keys from all 13 locales (incl. the
  restart/stop keys orphaned since P6/P7 — i18n-dead-keys test green)
- tests: drop the test-URL hook test, re-probe the loopback index
  mapping through Move-to-top, regenerate API types (gen)
2026-10-21 16:35:53 +00:00

4.7 KiB
Raw Blame History

3x-ui 路由器主控精简版 — 定版清单

2026-10-20 与用户逐项讨论中。本文档定版前不开工。 背景:AX6600 路由器 = 主控(3x-ui 3.7.0,纯控制面,本机 xray 已 chmod -x 禁用,RSS ~130MB); Alpine 主控 = 备用,趋于退役。精简目标:二开构建压内存,验收线 RSS ≤ 90MB。

保留(已定)

  • 入站/客户端管理、节点同步、内部流量统计(主控本职)
  • 订阅服务,但极简输出:只给节点本身,不塞分流规则模板(geosite/geoip 规则集去掉);多格式转换保留
  • VLESS、SS2022 入站(SS2022 为全网硬约束,不得移除)
  • API 令牌系统(暂保留):存量原版节点与主控的同步靠原版令牌机制(远程面板令牌 + node-sync scoped token);二开 agent 走自己的注册令牌是另一套。等存量节点全换二开 agent 后再议删除
  • 数据库 schema 不动(回滚保险:换回原版二进制可读同一份库)

裁剪(已定)

  • Telegram 机器人 + 面板设置里的「通知」(用户改手动备份;路由器上的 TG 备份 cron 绕行方案同步弃用)
  • xray 配置模块部分裁:出站 + 路由保留(页面与生成逻辑都要;节点内网中转靠主控下发出站/路由,用户明确);其余模板部件(DNS、日志、策略等本机向设置)固定为内置默认值,去掉页面与生成/校验逻辑
  • xray 可执行文件不再随包(x25519 内置生成后无硬依赖)
  • xray-core 库剥离:配置生成改为纯 JSON 结构实现。最大一刀、风险最高,最后动
  • API 文档(Swagger 页)
  • 面板设置:外部流量(对外上报接口,未接任何外部系统;内部统计不受影响)
  • 面板设置:LDAP
  • 安全设置:双重验证(2FA,用户不用)
  • 邮件模块(SMTP 发送:到期/流量提醒等,用户不用)
  • 分组功能(客户端归类标签 + 按组批量操作/聚合订阅;用户从未用过,裁功能不影响已建客户端与订阅)
  • 本地核心实测三件套(P9 第 4 条,用户 2026-10-21 晚改口):出站测速(临时 xray 实例批量探测 testOutbound(s) 接口 + 前端测试按钮/模式切换/结果弹层)、出口探测(同一动作的 egress IP/国家展示)、重启/停止核心接口(restartXrayService/stopXrayService,与首页已摘按钮同族);出站与路由的模板编辑(增删改存)保留不动

范围确认(2026-10-21 用户拍板:四项全部保留,不裁)

  • 协议范围:保留全部协议模板(VLESS、SS2022、VMess、Trojan、WireGuard、TUIC、Hysteria、MTProto 等),不收窄
  • IP 检查 / 测速类后台任务:保留 → 2026-10-21 晚用户改口推翻本项:出站测速 + 出口探测(同一动作,测的是主控本地网络位置;精简主控不跑本机核心、无本地出站,测速结果无意义)连同重启/停止核心控件与接口,已于 P9 第 4 条摘除。其余三项(协议范围 / ACME / 多用户)保留不变,不要再翻出来问。
  • 面板内置 ACME 签证书:保留
  • 多用户功能:保留
  • 用户理由:这四块以静态代码为主,裁掉省不了多少内存。此节关闭,后续轮次不要再翻出来问。

修复(非裁剪,已定)

  • x25519 内置生成:原版生成 Reality 密钥靠调 xray x25519,主控禁用 xray 后建 VLESS+Reality 节点报"获取 x25519 证书错误"。改面板 Go 内置实现(crypto/ecdh),不再依赖 xray 二进制
  • mixed 协议节点部署 bug(原版 bug):主控建入站选 mixed 协议时节点选择框消失,只能建本机;但节点本地建的 mixed 入站可同步回主控管理,证明后端/同步通道支持,纯前端对话框条件问题。修前端条件,允许 mixed 选节点部署

流程与验收(已定)

  • 基线:3.7.0 二开版,不升级版本
  • 顺序:边角裁剪 → 两个 bug 修复 → 最后剥 xray-core
  • 交付:沙箱构建 → 路由器旁路端口冒烟 → 用户验收后替换;原版二进制保留,换回即回滚
  • 验收线:RSS ≤ 90MB;订阅可拉;节点同步正常;Reality 建节点不报错(含 x25519 获取);mixed 可部署到节点;流量统计正常
  • 内存预估(2026-10-20):基线 130.6MB → 预计 50-70MB。边角裁剪(TG/邮件/LDAP/2FA/文档/分组)对 RSS 贡献仅个位数 MB(多为休眠代码,主要瘦二进制);大头在剥 xray-core(库初始化/注册表/API 客户端栈)。若 xray-core 那刀不动,改完仍在 110-120MB。下限参考:框架(Gin+GORM+SQLite+Web UI+节点同步+订阅渲染)底盘约 40-50MB,到不了 NexusGate Go 版的 15-30MB(那是 stdlib 重写的量级)