NewLife/RainbowBridge

docs: 同步 需求文档编码对齐 + 架构设计统计修正 + 竞品状态更新
大石头 authored at 2026-08-01 11:35:25
a7545f6
Tree
1 Parent(s) e9edb83
Summary: 3 changed files with 160 additions and 95 deletions.
Modified +29 -24
Modified +4 -4
Modified +127 -67
Modified +29 -24
diff --git "a/Doc/\346\236\266\346\236\204\350\256\276\350\256\241.md" "b/Doc/\346\236\266\346\236\204\350\256\276\350\256\241.md"
index 651a353..91ab870 100644
--- "a/Doc/\346\236\266\346\236\204\350\256\276\350\256\241.md"
+++ "b/Doc/\346\236\266\346\236\204\350\256\276\350\256\241.md"
@@ -1,6 +1,6 @@
 # Rainbow 架构设计
 
-> 版本:v3.0 | 日期:2026-07-30 | [← 返回 README](../README.md)
+> 版本:v3.1 | 日期:2026-08-01 | [← 返回 README](../README.md)
 >
 > 需求对应:[需求文档](需求文档.md) | 功能清单:[功能清单](功能清单.md)
 
@@ -493,7 +493,7 @@ ShellExecutor 执行安装(超时 120s)
 
 Rainbow 采用 **XCode ORM + Model.xml + SQLite** 的数据建模路线。两个模块各有独立 Model.xml:
 
-- **`Rainbow.Data/Network/Model.xml`** — 网络模块(17 实体):设备、WAN 接口、PPPoE(含 Connected/PublicIP/ConnectTime/Uptime 展示字段)、DHCP(地址池/绑定/租约/选项模板)、DNS(规则/黑名单)、防火墙、设备分组、家庭成员、网络日志、配置快照、设备在线、设备历史
+- **`Rainbow.Data/Network/Model.xml`** — 网络模块(21 实体):设备、WAN 接口、PPPoE(含 Connected/PublicIP/ConnectTime/Uptime 展示字段)、DHCP(地址池/绑定/租约/选项模板)、DNS(规则/黑名单/查询日志/解析表)、防火墙、设备分组、家庭成员、网络日志、配置快照、设备在线、设备历史、OUI 前缀、家庭调度
 - **`Rainbow.Data/Stats/Model.xml`** — 统计模块(9 实体):网口/设备/成员三级统计(分钟→小时→日聚合),全部按天分表 + 自动过期清理
 
 > 完整表结构定义见 Model.xml 源码(`Rainbow.Data/Network/Model.xml` 和 `Rainbow.Data/Stats/Model.xml`),字段级详细设计以 Model.xml 为准。
@@ -514,7 +514,7 @@ Rainbow 采用 **XCode ORM + Model.xml + SQLite** 的数据建模路线。两个
 
 Rainbow 提供两组 API 入口:
 
-**RESTful API(26 个控制器)** — 按功能域分组:
+**RESTful API(27 个控制器)** — 按功能域分组:
 
 | 域 | 控制器(Route) |
 |---|-----------------|
@@ -542,7 +542,7 @@ Rainbow 提供两组 API 入口:
 | `POST` | `/api/firewall/scan` | 扫描系统防火墙规则(iptables/nftables),解析后去重写入 FirewallRule 表 |
 | `GET` | `/api/firewall/scan/status` | 查询扫描任务状态 |
 
-**Cube /admin 实体控制器(26 个)** — Network 区域 17 个 + Stats 区域 9 个,由 `Model.xml` 的 `CubeOutput` 配置自动生成,提供标准 CRUD 界面。
+**Cube /admin 实体控制器(30 个)** — Network 区域 21 个 + Stats 区域 9 个,由 `Model.xml` 的 `CubeOutput` 配置自动生成,提供标准 CRUD 界面。
 
 ### 3.2 API 规范
 
@@ -642,7 +642,7 @@ Rainbow 的所有 RESTful API 遵循 **Cube WebAPI 接口规范**(`NewLife.Cub
 
 ```
 Web/                      ← React SPA 前端
-├── src/pages/            ← 19 个页面(仪表盘/网络概览/设备列表/家庭成员/多WAN/PPPoE拨号/DHCP服务/IPv6/VLAN/静态路由/QoS限速/防火墙/DNS管控/WireGuard/OpenVPN/统计/操作日志/网络诊断/系统设置)
+├── src/pages/            ← 26 个页面(仪表盘/网络概览/网络连接/设备列表/家庭成员/多WAN/PPPoE拨号/DHCP服务/IPv6/VLAN/静态路由/QoS限速/防火墙/家庭管控/DNS管控/DNS查询日志/DNS解析表/WireGuard/OpenVPN/统计总览/设备流量/网卡流量/成员流量/操作日志/网络诊断/系统设置)
 ├── src/components/       ← 通用组件库(11 个原子组件 + ECharts 图表组件)
 ├── src/lib/              ← API 调用封装 + 工具函数
 ├── src/stores/           ← Zustand 状态管理(主题/i18n)
@@ -704,7 +704,7 @@ cp deploy/rainbow.sudoers /etc/sudoers.d/rainbow
 
 ## 附录:服务层全景
 
-共 **30 个服务类**,全部位于 `Rainbow.Services` 命名空间,Singleton 注册。
+共 **58 个服务类**,全部位于 `Rainbow.Services` 命名空间,Singleton 注册。
 
 | # | 服务 | 说明 |
 |---|------|------|
@@ -743,29 +743,34 @@ cp deploy/rainbow.sudoers /etc/sudoers.d/rainbow
 | 33 | **NetworkOverviewService** | **网络概览服务**:跨平台网口/DHCP/DNS/路由/流量统一视图聚合 |
 | 34 | **DnsOverHttpsForwarder** | **DNS-over-HTTPS 转发器**:当上游配置 DOH 时启用,将 DNS over HTTPS 转发 |
 | 35 | **BlockPageService** | **DNS 拦截提示页服务**(HostedService):独立 `http://+:9080/`,展示拦截提示页 |
+| 36 | **InternetSharingService** | **上网共享 NAT 公共服务**:IP 转发 + 每接口 MASQUERADE + FORWARD 放行 + iptables-save 持久化,主路由模式多 WAN(含 ppp0)统一复用,幂等 |
+| 37 | **PppReconnectService** | **PPPoE 自动重拨服务**(IHostedService):TimerX 按账号间隔健康检测(接口/默认路由/连通性三层)+ 重拨锁 + 连续失败防抖 |
+| 38 | **ConntrackTrafficCollector** | **conntrack 逐连接流量采集**:以连接五元组为键按连接各自做差,首次建基线/新连接全额/五元组复用检测/5min 淘汰,修复按 IP 求和的系统性欠计 |
+| 39 | **ConntrackModuleLoader** | **conntrack acct 模块加载**:Linux 启动时确保 `nf_conntrack_acct` 启用(sysfs 写入 + modprobe 回退),保证字节/包统计可用 |
+| 40 | **DnsmasqConfigParser** | **dnsmasq 配置解析器**:解析 `dhcp-range`/`dhcp-host` 指令,供 `DnsmasqManager.ScanAndSyncAsync()` 扫描导入 |
 
 > **平台专属适配器**(以下适配器按平台条件注册,在 Program.cs 中通过 `OperatingSystem.IsWindows/Linux/MacOS` 判断):
 
 | # | 服务 | 说明 |
 |---|------|------|
-| 36 | **WindowsFirewallAdapter** | Windows 防火墙适配器(IFirewallAdapter):netsh advfirewall |
-| 37 | **WindowsDhcpDnsAdapter** | Windows DHCP/DNS 适配器(IDhcpDnsAdapter) |
-| 38 | **WindowsRouteManager** | Windows 路由管理(INetworkRouteManager):route print |
-| 39 | **WindowsNetworkInterfaceManager** | Windows 网口管理(INetworkInterfaceManager):Get-NetAdapter |
-| 40 | **WindowsPortProxyManager** | Windows 端口代理:netsh portproxy |
-| 41 | **WindowsBlacklistManager** | Windows 黑名单管理 |
-| 42 | **WindowsFailoverManager** | Windows 多 WAN 故障检测与切换 |
-| 43 | **WindowsPppManager** | Windows PPPoE 拨号管理:rasdial |
-| 44 | **WindowsWireGuardManager** | Windows WireGuard 管理 |
-| 45 | **WindowsOpenVpnManager** | Windows OpenVPN 管理 |
-| 46 | WindowsNetworkStatProvider | ⚠️ 已由统一 NetworkInterfaceStatProvider 取代(DI 不再注册),类保留仅供既有测试引用。原 Windows 网口流量统计:NetworkInterface API + netstat -e 回退 |
-| 47 | **MacFirewallAdapter** | macOS 防火墙适配器(IFirewallAdapter):pfctl |
-| 48 | **MacRouteManager** | macOS 路由管理(INetworkRouteManager):netstat -r |
-| 49 | **MacDhcpDnsAdapter** | macOS DHCP/DNS 适配器(IDhcpDnsAdapter):bootpd |
-| 50 | **MacNetworkInterfaceManager** | macOS 网口管理(INetworkInterfaceManager):networksetup |
-| 51 | **MacWireGuardManager** | macOS WireGuard 管理 |
-| 52 | **Bind9Adapter** | bind9 适配器(IDhcpDnsAdapter),Linux 备用 DHCP/DNS 后端 |
-| 53 | **AdapterFactory** | 适配器工厂:根据当前 OS 创建合适的 IOSAdapter 实例 |
+| 41 | **WindowsFirewallAdapter** | Windows 防火墙适配器(IFirewallAdapter):netsh advfirewall |
+| 42 | **WindowsDhcpDnsAdapter** | Windows DHCP/DNS 适配器(IDhcpDnsAdapter) |
+| 43 | **WindowsRouteManager** | Windows 路由管理(INetworkRouteManager):route print |
+| 44 | **WindowsNetworkInterfaceManager** | Windows 网口管理(INetworkInterfaceManager):Get-NetAdapter |
+| 45 | **WindowsPortProxyManager** | Windows 端口代理:netsh portproxy |
+| 46 | **WindowsBlacklistManager** | Windows 黑名单管理 |
+| 47 | **WindowsFailoverManager** | Windows 多 WAN 故障检测与切换 |
+| 48 | **WindowsPppManager** | Windows PPPoE 拨号管理:rasdial |
+| 49 | **WindowsWireGuardManager** | Windows WireGuard 管理 |
+| 50 | **WindowsOpenVpnManager** | Windows OpenVPN 管理 |
+| 51 | WindowsNetworkStatProvider | ⚠️ 已由统一 NetworkInterfaceStatProvider 取代(DI 不再注册),类保留仅供既有测试引用。原 Windows 网口流量统计:NetworkInterface API + netstat -e 回退 |
+| 52 | **MacFirewallAdapter** | macOS 防火墙适配器(IFirewallAdapter):pfctl |
+| 53 | **MacRouteManager** | macOS 路由管理(INetworkRouteManager):netstat -r |
+| 54 | **MacDhcpDnsAdapter** | macOS DHCP/DNS 适配器(IDhcpDnsAdapter):bootpd |
+| 55 | **MacNetworkInterfaceManager** | macOS 网口管理(INetworkInterfaceManager):networksetup |
+| 56 | **MacWireGuardManager** | macOS WireGuard 管理 |
+| 57 | **Bind9Adapter** | bind9 适配器(IDhcpDnsAdapter),Linux 备用 DHCP/DNS 后端 |
+| 58 | **AdapterFactory** | 适配器工厂:根据当前 OS 创建合适的 IOSAdapter 实例 |
 
 ---
 
Modified +4 -4
diff --git "a/Doc/\347\253\236\345\223\201\345\210\206\346\236\220.md" "b/Doc/\347\253\236\345\223\201\345\210\206\346\236\220.md"
index b8521c4..8a921f4 100644
--- "a/Doc/\347\253\236\345\223\201\345\210\206\346\236\220.md"
+++ "b/Doc/\347\253\236\345\223\201\345\210\206\346\236\220.md"
@@ -1,8 +1,8 @@
 # Rainbow 竞品分析
 
-> 版本:v2.3 | 日期:2026-07-17 | [← 返回 README](../README.md)
+> 版本:v2.4 | 日期:2026-08-01 | [← 返回 README](../README.md)
 >
-> 对标版本:Rainbow v3.1 / OpenWrt 25.12 / pfSense 2.8 / OPNsense 25.x / RouterOS 7.x / iKuai 3.x / VyOS 1.5 / AdGuard Home 0.107
+> 对标版本:Rainbow v3.9 / OpenWrt 25.12 / pfSense 2.8 / OPNsense 25.x / RouterOS 7.x / iKuai 3.x / VyOS 1.5 / AdGuard Home 0.107
 
 Rainbow 面向**家庭、工作室、中小企业**等多种场景,竞品覆盖开源和商业两类软路由方案。
 
@@ -116,7 +116,7 @@ VyOS 是基于 Debian 的网络操作系统,**仅提供 CLI(类 Juniper 风
 | WireGuard VPN | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ |
 | OpenVPN | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ |
 | VPN 站点互联 | ✅ | ⚠️ | ✅ | ✅ | ✅ | ❌ | ✅ |
-| 流量整形 QoS | ⚠️ 后端已实现 | ✅ SQM | ✅ | ✅ | ✅ | ✅ | ⚠️ |
+| 流量整形 QoS | ✅ | ✅ SQM | ✅ | ✅ | ✅ | ✅ | ⚠️ |
 
 ### 2.5 数据统计
 
@@ -134,7 +134,7 @@ VyOS 是基于 Debian 的网络操作系统,**仅提供 CLI(类 Juniper 风
 |------|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
 | 仪表盘 | ✅ | ⚠️ LuCI | ✅ | ✅ | ✅ | ✅ | ❌ |
 | 系统健康监控 | ✅ | ⚠️ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| 配置备份/回滚 | 🔧 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ commit/rollback |
+| 配置备份/回滚 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ commit/rollback |
 | 操作日志审计 | ✅ | ⚠️ syslog | ✅ | ✅ | ✅ | ✅ | ✅ |
 | 多用户 RBAC | ✅ Cube | ❌ root 单用户 | ✅ | ✅ | ✅ | ✅ | ✅ |
 | SSO 单点登录 | ✅ OAuth/OIDC | ❌ | ❌ | ⚠️ LDAP | ❌ | ❌ | ⚠️ RADIUS |
Modified +127 -67
diff --git "a/Doc/\351\234\200\346\261\202\346\226\207\346\241\243.md" "b/Doc/\351\234\200\346\261\202\346\226\207\346\241\243.md"
index 213e43f..50145f8 100644
--- "a/Doc/\351\234\200\346\261\202\346\226\207\346\241\243.md"
+++ "b/Doc/\351\234\200\346\261\202\346\226\207\346\241\243.md"
@@ -1,6 +1,6 @@
 # Rainbow 需求文档
 
-> 版本:v3.8 | 日期:2026-07-30 | [← 返回 README](../README.md)
+> 版本:v3.9 | 日期:2026-08-01 | [← 返回 README](../README.md)
 
 本文档描述 Rainbow(彩虹桥)的愿景、用户场景和功能体系。完成状态在[功能清单](功能清单.md)中追踪,技术实现在[架构设计](架构设计.md)中展开。
 
@@ -145,9 +145,9 @@ Rainbow 可部署在 **Windows/macOS** 常开设备上,提供**系统监控、
 - **SYS-1e 发行版检测**:DistroAdapter,自动识别 Debian/Ubuntu/CentOS/RHEL/Fedora,适配包管理器
 
 #### SYS-2 双入口架构
-- **SYS-2a React SPA 前端**:`/` 路径,Vite + React 19 + TypeScript + TailwindCSS,星语UI规范,25 个页面(仪表盘/网络概览/网络连接/设备列表/家庭成员/多WAN/PPPoE拨号/DHCP服务/IPv6/VLAN/静态路由/QoS限速/防火墙/家庭管控/DNS管控/WireGuard/OpenVPN/DNS查询日志/DNS解析表/统计总览/设备流量统计/网卡流量统计/操作日志/网络诊断/系统设置)
+- **SYS-2a React SPA 前端**:`/` 路径,Vite + React 19 + TypeScript + TailwindCSS,星语UI规范,26 个页面(仪表盘/网络概览/网络连接/设备列表/家庭成员/多WAN/PPPoE拨号/DHCP服务/IPv6/VLAN/静态路由/QoS限速/防火墙/家庭管控/DNS管控/WireGuard/OpenVPN/DNS查询日志/DNS解析表/统计总览/设备流量统计/网卡流量统计/成员流量统计/操作日志/网络诊断/系统设置)
 - **SYS-2b Cube /admin 后台**:`/admin` 路径,用户管理/角色权限/操作日志/系统配置
-- **SYS-2c Cube Network 区域**:`/admin/Network`,17 个实体控制器(设备/WAN/DHCP/DNS/防火墙/DHCP 租约/DHCP 选项模板/QoS 限速规则/设备在线/配置快照等)
+- **SYS-2c Cube Network 区域**:`/admin/Network`,21 个实体控制器(设备/WAN/DHCP/DNS/防火墙/DHCP 租约/DHCP 选项模板/QoS 限速规则/设备在线/配置快照等)
 - **SYS-2d Cube Stats 区域**:`/admin/Stats`,9 个统计实体控制器(只读),数据可查不可改
 - **SYS-2e SPA 路由回退**:前端路由自动 fallback 到 `index.html`
 
@@ -177,39 +177,66 @@ Rainbow 可部署在 **Windows/macOS** 常开设备上,提供**系统监控、
 ### 3.2 NET — 网络接入
 
 #### NET-1 多 WAN 接入
-- **NET-1a WAN 口管理**:WanInterface 表 CRUD,支持 DHCP/静态 IP/PPPoE 三种类型
-- **NET-1b 多路由表**:每 WAN 口独立路由表(`ip route add table`),通过 `ip rule` 策略路由分流
-- **NET-1c 负载均衡**:三种模式 — 轮询(RoundRobin) / 权重(Weight) / 源地址哈希(SrcHash),iptables statistic + fwmark
-- **NET-1d 故障检测与切换**:TimerX 定时 ping 各 WAN 口网关,断线自动切默认路由到正常线路
-- **NET-1e WAN 口实时状态**:每线路连接状态、IPv4/IPv6 地址、实时速率(Rx/Tx)、累计流量
+- **NET-1a WAN 管理接口**:WanInterface 表 CRUD,支持 DHCP/静态 IP/PPPoE 三种类型
+- **NET-1b WAN 管理页面**:WanPage,列表/新增/编辑/删除
+- **NET-1c 多路由表**:每 WAN 口独立路由表(`ip route add table`),通过 `ip rule` 策略路由分流
+- **NET-1d 负载均衡服务**:三种模式 — 轮询(RoundRobin) / 权重(Weight) / 源地址哈希(SrcHash),iptables statistic + fwmark
+- **NET-1e 负载均衡配置面板**:WanPage 扩展,模式选择器 + 故障检测按钮
+- **NET-1f 故障检测与切换**:TimerX 定时 ping 各 WAN 口网关,断线自动切默认路由到正常线路
+- **NET-1g WAN 口状态接口**:每线路连接状态、IPv4/IPv6 地址、实时速率(Rx/Tx)、累计流量
+- **NET-1h WAN 口状态卡片**:Dashboard 状态卡片展示
+- **NET-1i 上网共享接口**:InternetSharingService 公共服务,主路由模式所有启用 WAN 的 IP 转发 + MASQUERADE + FORWARD,`/api/wan/internet-sharing/apply` 手动触发,扫描/故障切换后顺带应用,旁路由自动跳过
+- **NET-1j 上网共享按钮**:WanPage 工具条「应用上网共享」按钮
 
 #### NET-2 PPPoE 拨号
-- **NET-2a 拨号管理**:`pon`/`poff` 封装,连接/断开/状态查询 API
-- **NET-2b 账号配置**:PppoeAccount 表管理,自动写入 `/etc/ppp/peers/` 和 `chap-secrets`
-- **NET-2c 自动重拨**:TimerX 定期检测链路状态,掉线自动重连,重拨锁防并发
-- **NET-2d 拨号日志**:连接时间、断开原因、重拨次数记录
-- **NET-2e 系统配置自动扫描**:访问页面时后端静默扫描 `/etc/ppp/peers/` 和 `/etc/ppp/chap-secrets`,发现已有拨号账号并同步到数据库;连接/断开时自动更新在线状态和公网 IP;前端只管调用接口展示,扫描由后端触发不阻塞请求
+- **NET-2a 拨号管理接口**:`pon`/`poff` 封装,连接/断开/状态查询 API
+- **NET-2b PPPoE 管理页面**:PppoePage,连接/断开/状态展示
+- **NET-2c 账号配置**:PppoeAccount 表管理,自动写入 `/etc/ppp/peers/` 和 `chap-secrets`
+- **NET-2d 自动重拨**:PppReconnectService 随宿主自启,TimerX 定期检测链路状态(接口/默认路由/连通性三层检测),掉线自动重连,重拨锁防并发 + 连续失败防抖
+- **NET-2e 拨号日志**:连接时间、断开原因、重拨次数记录(NetworkLog 表)
+- **NET-2f 系统配置自动扫描**:访问页面时后端静默扫描 `/etc/ppp/peers/` 和 `/etc/ppp/chap-secrets`,发现已有拨号账号并同步到数据库;连接/断开时自动更新在线状态和公网 IP;前端只管调用接口展示,扫描由后端触发不阻塞请求
+- **NET-2g 自动加载页面**:GetAccounts 后端触发扫描不阻塞,前端只管调接口展示
+- **NET-2h 上网共享(NAT)**:EnsureInternetSharingAsync 开启 IP 转发 + MASQUERADE + FORWARD 放行,拨号/重拨成功后自动应用(幂等),`/api/pppoe/nat/apply` 手动触发
+- **NET-2i 自动重拨设置页面**:PppoePage 自动重拨启停 + 链路健康状态 + 表单自动重拨开关/重拨间隔
 
 #### NET-3 DHCP 服务
-- **NET-3a 地址池配置**:DhcpPool 表,子网/掩码/范围/网关/租期/DNS 服务器
-- **NET-3b 静态绑定**:DhcpBinding 表,MAC → 指定 IP,关联 Device 终端
-- **NET-3c 在线设备列表**:从 dnsmasq leases 文件采集,含 IP/MAC/主机名/租约到期时间
-- **NET-3d 组件适配**:默认 dnsmasq,可通过 IDhcpDnsAdapter 切换到 systemd-networkd 或 bind9
-- **NET-3e 系统配置扫描导入**:Debian/Linux 上访问 DHCP 页面时自动异步读取系统 dnsmasq 配置,解析 dhcp-range 和 dhcp-host 指令,智能合并导入到 DhcpPool 和 DhcpBinding 数据表。利用数据库扩展字段(创建时间/更新时间/IP 等)提升展示友好度
+- **NET-3a 地址池管理接口**:DhcpController CRUD(DhcpPool 表,子网/掩码/范围/网关/租期/DNS 服务器)
+- **NET-3b DHCP 配置页面**:DhcpPage
+- **NET-3c 静态绑定接口**:DhcpBindingController CRUD(DhcpBinding 表,MAC → 指定 IP,关联 Device 终端)
+- **NET-3d 在线设备列表采集**:从 dnsmasq leases 文件采集,含 IP/MAC/主机名/租约到期时间
+- **NET-3e 在线设备列表页面**:DhcpPage,授权四态下拉切换 + CSV 导入导出
+- **NET-3f dnsmasq 适配器**:默认 dnsmasq,可通过 IDhcpDnsAdapter 切换到 systemd-networkd 或 bind9
+- **NET-3g DHCP 系统配置扫描(后端)**:DnsmasqConfigParser 解析 dnsmasq 配置,DnsmasqManager.ScanAndSyncAsync() 扫描导入 Db
+- **NET-3h DHCP 页面自动扫描加载(前端)**:DhcpPage 加载时触发 POST /api/dhcp/scan,等待 1000ms 后读取 DB
 
 #### NET-4 IPv6 双栈
-- **NET-4a IPv6 开关**:一键启用/禁用系统 IPv6
-- **NET-4b DHCPv6 / RA / DHCPv6-PD**:dnsmasq 配置,自动分配 IPv6 地址和前缀委派
-- **NET-4c IPv6 防火墙**:ip6tables 规则管理,与 v4 防火墙统一入口
-- **NET-4d IPv6 状态查询**:WAN 口 IPv6 地址、前缀、网关、DNS
+- **NET-4a IPv6 管理接口**:IPv6Controller,信息/开关/防火墙
+- **NET-4b IPv6 管理页面**:IPv6Page,状态展示 + 一键开关 + 地址列表
+- **NET-4c DHCPv6 / RA / DHCPv6-PD**:dnsmasq 配置,自动分配 IPv6 地址和前缀委派
+- **NET-4d IPv6 防火墙**:ip6tables 规则管理,与 v4 防火墙统一入口
 
 #### NET-5 DHCP 设备授权与配置同步(旁路由核心)
 
-- **NET-5a DnsmasqManager 配置同步**:Web 配置(DnsRule/DnsBlacklist/DhcpPool/DhcpBinding)→ 自动生成 `/etc/dnsmasq.d/rainbow.conf` → `systemctl reload dnsmasq`;CRUD 操作后自动触发,打通"配置 → 策略 → 协议执行"完整链路
-- **NET-5b 设备授权四态**:DhcpBinding.AuthStatus 字段(Authorized/Pending/Blocked/Guest),dnsmasq tag 系统实现:`tag:authorized` → 正常 IP 池 + 正常网关/DNS;`tag:!authorized` → 隔离 IP 池 + 受限 DNS
-- **NET-5c DHCP Option 模板**:DeviceGroup 关联 DhcpOptionProfile(网关/DNS/NTP/租约时间),整组统一 DHCP 策略
-- **NET-5d DNS 黑名单命中统计**:解析 dnsmasq 查询日志,定时批量更新 Hits 字段,`/api/dns/blacklist/stats` 返回真实拦截数据
-- **NET-5e IDhcpDnsAdapter 接口预留**:接口扩展 `ApplyConfigAsync(DhcpDnsConfig)` 等方法,结构化配置对象与具体后端解耦,为未来自研 DNS/DHCP 服务器预留插槽
+- **NET-5a DnsmasqManager 配置生成**:读取 SQLite → 生成 `/etc/dnsmasq.d/rainbow.conf`,打通"配置 → 策略 → 协议执行"完整链路
+- **NET-5b 服务重载**:`systemctl reload dnsmasq`,失败回滚
+- **NET-5c CRUD 钩子自动触发**:DnsRule/DhcpPool/DhcpBinding/DnsBlacklist 变更后自动触发配置同步
+- **NET-5d 租约读取**:`GetLeasesAsync()` 解析 dnsmasq.leases
+- **NET-5e 静态绑定同步**:DhcpBinding → dhcp-host 行
+- **NET-5f 设备授权四态**:DhcpBinding.AuthStatus 字段(Authorized/Pending/Blocked/Guest),dnsmasq tag 系统实现:`tag:authorized` → 正常 IP 池 + 正常网关/DNS;`tag:!authorized` → 隔离 IP 池 + 受限 DNS
+- **NET-5g Tag 生成**:dhcp-host=MAC,set:authorized 通过 AuthStatus 驱动
+- **NET-5h 差异 DHCP 策略**:tag:authorized / tag:!authorized 差异化 IP 池 + DNS
+- **NET-5i DeviceGroup DHCP 模板**:DeviceGroup.ProfileId → DhcpOptionProfile(网关/DNS/NTP/租约时间),整组统一 DHCP 策略
+- **NET-5j IDhcpDnsAdapter 接口扩展**:ApplyConfigAsync/GetLeasesAsync/AddStaticLeaseAsync 等 5 方法
+- **NET-5k DhcpDnsConfig DTO**:结构化配置对象与具体后端解耦
+- **NET-5l DnsmasqAdapter 增强**:实现 IDhcpDnsAdapter 全部新接口方法
+- **NET-5m DI 注册**:Program.cs 注册 IDhcpDnsAdapter/DnsmasqManager
+- **NET-5n 接口文档注释**:IDhcpDnsAdapter 全部方法标注实现说明
+- **NET-5o DNS 日志解析**:DnsLogParser 定时解析 dnsmasq 查询日志,匹配 DnsBlacklist 域名,更新 Hits + LastHit 命中统计
+- **NET-5p 定时统计**:TimerX 每分钟增量更新 Hits+LastHit
+- **NET-5q 统计接口**:`/api/dns/blacklist/stats` 返回真实拦截数据
+- **NET-5r 新增 DhcpOptionProfile 表**:Model.xml + xcode 生成
+- **NET-5s 新增 DhcpLease 表**:Model.xml + xcode 生成
+- **NET-5t 远期自研接口预留**:IDhcpDnsAdapter 文档注释标注自研服务器预期行为
 
 > **远期规划**:未来可基于 `IDhcpDnsAdapter` 接口实现自研 .NET DNS/DHCP 服务器(P3),届时所有平台统一为自研服务器,摆脱对 dnsmasq/Windows DHCP Server/macOS bootpd 的外部依赖。
 
@@ -218,55 +245,74 @@ Rainbow 可部署在 **Windows/macOS** 常开设备上,提供**系统监控、
 ### 3.3 SEC — 安全管控
 
 #### SEC-1 防火墙与 NAT
-- **SEC-1a 端口映射 DNAT**:外网端口 → 内网 IP:端口,支持 TCP/UDP/ICMP 协议
-- **SEC-1b 源地址转换 SNAT**:指定内网 IP 的出站流量走特定 WAN 口 IP
-- **SEC-1c IP/MAC 过滤**:Device.Enable=false + DeviceBlockService 联动防火墙 MAC DROP,黑名单阻断
-- **SEC-1d 一键断网/恢复**:MAC 级临时 DROP/ACCEPT,即时生效
-- **SEC-1e 规则持久化**:`iptables-save` 保存到 `/etc/iptables/`,重启恢复
-- **SEC-1f 时间段规则**:按星期+时间段定时启用/禁用规则,TimerX 每分钟检查
-- **SEC-1g 组件适配**:默认 iptables,可通过 IFirewallAdapter 切换到 nftables
+- **SEC-1a 端口映射接口**:FirewallController CRUD(DNAT/SNAT/Filter),外网端口 → 内网 IP:端口,支持 TCP/UDP/ICMP 协议
+- **SEC-1b 防火墙管理页面**:FirewallPage,新增/删除/持久化
+- **SEC-1c SNAT 规则**:FirewallManager,指定内网 IP 的出站流量走特定 WAN 口 IP
+- **SEC-1d IP/MAC 黑名单**:Device.IsBlocked → iptables DROP,黑名单阻断
+- **SEC-1e 一键断网/恢复**:MAC 级临时 DROP/ACCEPT,即时生效
+- **SEC-1f 规则持久化(Linux)**:`iptables-save` 保存到 `/etc/iptables/`,重启恢复
+- **SEC-1g 防火墙适配(Windows)**:WindowsFirewallAdapter,netsh advfirewall
+- **SEC-1h 时间段规则**:按星期+时间段定时启用/禁用规则,TimerX 每分钟检查
+- **SEC-1i nftables 适配**:默认 iptables,可通过 IFirewallAdapter 切换到 nftables
+- **SEC-1j 端口映射(Windows)**:WindowsPortProxyManager,netsh portproxy
 - **SEC-1k 系统防火墙规则扫描**:从系统 iptables/nftables 读取当前规则,解析为结构化 FirewallRule 实体后写入数据库,支持自动去重。页面加载时异步触发,1000ms 超时改善用户体验
-- **SEC-1l 防火墙展示友好字段**:FirewallRule 表扩展 Chain/Action/Source/Description 字段,页面列表和表单同步展示,规则描述自动从解析结果生成
+- **SEC-1l 防火墙规则扫描前端**:页面加载异步触发扫描,1000ms 超时改善 UX
 
 #### SEC-2 DNS 深度管控
-- **SEC-2a 上游 DNS 配置**:支持 IPv4/IPv6、DOH(DNS over HTTPS)、DOT(DNS over TLS)
-- **SEC-2b 域名劫持规则**:DnsRule 表,精确/通配(`*.example.com`)/正则三种匹配,重定向到指定 IP
-- **SEC-2c DNS 黑名单**:DnsBlacklist 表,分类(广告/追踪/恶意/成人/自定义),预置清单+用户自定义
-- **SEC-2d 广告域名屏蔽**:一键启用预置广告/追踪域名清单,自动拦截并统计命中次数
-- **SEC-2e 拦截重定向**:被屏蔽域名 → DNS 解析为路由器 LAN IP → iptables REDIRECT 80/443 → 端口 9080 拦截提示页
-- **SEC-2f 拦截提示页**:独立轻量 HTTP 服务(`http://+:9080/`),展示"此网站已被 Rainbow 拦截",不影响主服务
-- **SEC-2g 儿童模式 DNS 白名单**:仅解析教育/学习类域名,其余全部拦截,含家长自定义白名单
-- **SEC-2h 拦截统计**:Top 拦截域名、按分类汇总、命中趋势图
-- **SEC-2i DNS 查询日志存储**:从 dnsmasq 日志(`/var/log/dnsmasq.log`)增量解析每笔 DNS 查询,按客户端 IP、域名、查询类型、回复 IP、回复状态持久化到 `DnsQueryLog` 表(雪花 ID + 按月分表,30 天自动清理)。提供 `/dns/query-logs` 前端页面查询
-- **SEC-2j DNS 解析表与域名反查**:维护 `DnsResolution` 表(域名→IP 映射),每次 DNS 成功解析后更新最后观测时间和命中次数。网络连接页面自动对公网目的 IP 反向查询最新域名,显示在 IP 下方,让用户一眼识别流量去向
+- **SEC-2a 上游 DNS 配置**:支持 IPv4/IPv6、DOH(DNS over HTTPS)、DOT(DNS over TLS),DOH 由 `DnsOverHttpsForwarder` 转发
+- **SEC-2b DNS 规则接口**:DnsController,劫持/屏蔽/白名单规则(DnsRule 表,精确/通配(`*.example.com`)/正则三种匹配,重定向到指定 IP)
+- **SEC-2c DNS 管控页面**:DnsPage,规则/黑名单/统计
+- **SEC-2d DNS 黑名单接口**:DnsBlacklistController,4 分类(广告/追踪/恶意/成人/自定义)CRUD,预置清单 + 用户自定义
+- **SEC-2e 广告屏蔽服务**:一键启用预置广告/追踪域名清单,自动拦截并统计命中次数(Top 拦截域名/分类汇总/命中趋势)
+- **SEC-2f 拦截重定向**:被屏蔽域名 → DNS 解析为路由器 LAN IP → iptables REDIRECT 80/443 → 端口 9080 拦截提示页
+- **SEC-2g 拦截提示页**:独立轻量 HTTP 服务(`http://+:9080/`),展示"此网站已被 Rainbow 拦截",不影响主服务
+- **SEC-2h DNS 配置(Windows)**:WindowsDnsConfig 适配 Windows 平台 DNS 设置
+- **SEC-2i 儿童模式**:DNS 白名单 + 开关,仅解析教育/学习类域名,其余全部拦截,含家长自定义白名单
+- **SEC-2m 儿童模式前端 UI**:DnsPage「儿童模式」Tab,一键开关 + 白名单列表 CRUD
+- **SEC-2j DNS 查询日志存储**:从 dnsmasq 日志(`/var/log/dnsmasq.log`)增量解析每笔 DNS 查询,按客户端 IP、域名、查询类型、回复 IP、回复状态持久化到 `DnsQueryLog` 表(雪花 ID + 按月分表,30 天自动清理)
+- **SEC-2k DNS 解析表与域名反查**:维护 `DnsResolution` 表(域名→IP 映射),每次 DNS 成功解析后更新最后观测时间和命中次数。网络连接页面自动对公网目的 IP 反向查询最新域名,显示在 IP 下方,让用户一眼识别流量去向
+- **SEC-2l DNS 查询日志/解析表页面**:DnsQueryLogPage + DnsResolutionPage,分页/筛选/搜索
 
 ---
 
 ### 3.4 DEV — 终端管理
 
 #### DEV-1 设备识别与管理
-- **DEV-1a 设备自动发现**:从 ARP 表/DHCP leases/dnsmasq 采集,MAC 地址唯一标识。通过 DeviceOnline 表(ARP 表同步)→ DeviceHistoryTracker(状态变化追踪)→ Device 表的完整链路驱动
-- **DEV-1b 设备详情**:MAC、IP、主机名、厂商(OUI)、设备种类(手机/电脑/平板/IoT/其它)、图标、别名(中文名)
-- **DEV-1c 在线状态追踪**:首次上线、最后在线、在线时长、上下线历史(DeviceHistory 表)
-- **DEV-1d 设备搜索与筛选**:所有筛选(分组/在线状态/搜索关键词)、排序和分页均在服务端执行。点击左侧分组 → 调 API 重新查询该分组数据,右侧在线/离线 Tab 数字随之联动更新为该分组内的统计;切换在线/离线 Tab → 作为 `online` 查询参数传给后端;搜索框输入 → 400ms 防抖后调 API 服务端模糊匹配(MAC/IP/主机名/别名)。左侧分组面板展示每个分组的在线/离线明细(如 `孩子 5/8`),各分组合计 + 未分组 = 全部设备总数
-- **DEV-1e 设备拉黑/解封**:单个或批量操作,即时阻断网络访问
-- **DEV-1f 本机设备注册**:Rainbow 服务器自身(Debian 13)作为一台终端设备出现在终端管理列表中。页面加载时通过 DeviceRefreshService 异步采集本机 MAC/IP/主机名/网口信息,写入 Device 表并标记为"Rainbow 服务器",便于标记和管理本机
-- **DEV-1g ARP 表采集与在线同步**:页面加载或手动刷新时触发 ARP 表采集(Linux 读取 `/proc/net/arp`),将当前活跃的 IP↔MAC 映射写入 DeviceOnline 表,DeviceHistoryTracker 据此自动创建/更新 Device 记录。确保每次查看终端列表时数据为最新
+- **DEV-1a 设备 CRUD 接口**:DeviceController,自动发现/详情/更新,MAC 地址唯一标识
+- **DEV-1b 终端管理页面**:DevicesPage,列表/详情/搜索/筛选
+- **DEV-1c 设备自动发现采集**:从 ARP 表/DHCP leases/dnsmasq 采集,多源合并 + 多接口去重
+- **DEV-1d 设备历史追踪**:DeviceHistoryTracker 自动采集上下线/IP 变化(DeviceHistory 表)
+- **DEV-1e 设备搜索筛选(后端)**:groupId/online/search 查询参数 + XCode WhereExpression 筛选 + stat 随分组联动计数 + group-stats 分组统计接口
+- **DEV-1f 设备搜索筛选(前端)**:客户端过滤改为所有筛选走 API 重查,搜索 400ms 防抖
+- **DEV-1g 设备拉黑/解封**:单个或批量操作,即时阻断网络访问
+- **DEV-1h 本机终端信息注册**:DeviceRefreshService.RefreshLocalAsync() 采集本机 MAC/IP/主机名写入 Device 表,标记为"Rainbow 服务器"
+- **DEV-1i ARP 表采集器**:DeviceRefreshService.RefreshArpAsync() 读取 /proc/net/arp,写入 DeviceOnline 表
+- **DEV-1j 分组统计接口**:GET /api/devices/group-stats,每分组在线/离线/拉黑明细 + 全局汇总
+- **DEV-1k 分组面板统计展示**:GroupPanel 展示 `孩子 5/8` 格式,各分组合计 + 未分组 = 全部校验
 
 #### DEV-2 设备分组
-- **DEV-2a 分组管理**:DeviceGroup 表,树形结构(ParentId),支持家人/孩子/IoT/访客等默认分组
-- **DEV-2b 分组策略**:整组应用防火墙规则/DNS 策略/时间策略,新增设备自动继承
-- **DEV-2c 拖拽分组**:前端拖拽设备到不同分组,即时生效
+- **DEV-2a 分组 CRUD 接口**:DeviceGroupController,树形结构(ParentId),支持家人/孩子/IoT/访客等默认分组
+- **DEV-2b 分组管理页面**:树形分组展示/新增/编辑
+- **DEV-2c 分组策略继承**:整组应用防火墙规则/DNS 策略/时间策略,新增设备自动继承
+- **DEV-2d 拖拽分组**:前端拖拽设备到不同分组,即时生效
 
 #### DEV-3 家庭成员
-- **DEV-3a 成员管理**:Member 表,姓名/手机/邮箱/头像/角色(家长/孩子/访客)
-- **DEV-3b 一人多终端**:Member ↔ Device 关联,按人查看所有设备、按人应用策略
-- **DEV-3c 成员配额**:月度流量配额(MonthlyQuota),超出后自动限速或断网
+- **DEV-3a 成员 CRUD 接口**:MemberController,姓名/角色/配额(Member 表:姓名/手机/邮箱/头像/角色(家长/孩子/访客))
+- **DEV-3b 成员管理页面**:MembersPage,列表/新增/编辑
+- **DEV-3c 一人多终端查询**:/api/devices/by-owner,Member ↔ Device 关联,按人查看所有设备、按人应用策略
+- **DEV-3d 月度流量配额**:MemberQuotaService 配额检查 + 设备拉黑,超出后自动限速或断网
 
 #### DEV-4 DHCP 静态绑定
 - **DEV-4a 静态 IP 绑定**:MAC → 固定 IP,关联设备名,一键从在线设备添加
 - **DEV-4b 绑定列表管理**:增删改查,批量导入导出
 
+#### DEV-5 家庭定时断网
+- **DEV-5a 定时断网 API**:FamilyController,按设备设置每日断网时段(支持 weekDays 星期位),立即断网/恢复、临时奖励 API
+- **DEV-5b 家庭管控页面**:FamilyPage,设备列表 + 定时设置 + 即时操作 + 奖励 UI
+- **DEV-5c 调度服务**:FamilyScheduleService(IHostedService),TimerX 每分钟检查 DB 持久化(FamilySchedule 表)的调度,服务重启不丢失
+- **DEV-5d 儿童模式前端**:DnsPage「儿童模式」Tab,一键开关 + 白名单列表
+- **DEV-5e 每日上网配额**:Device.DailyQuotaMinutes + QuotaResetTime 字段,每日配额超限自动阻断,跨天自动重置
+
 ---
 
 ### 3.5 RT — 高级路由
@@ -283,10 +329,9 @@ Rainbow 可部署在 **Windows/macOS** 常开设备上,提供**系统监控、
 - **RT-2c 策略路由**:基于源 IP/目标端口/协议的策略路由规则
 
 #### RT-3 WireGuard VPN
-- **RT-3a 密钥管理**:服务端/客户端密钥对生成,一键复制公钥
-- **RT-3b Interface/Peer 配置**:wg-quick 配置管理,AllowedIPs 路由
-- **RT-3c 服务启停**:启动/停止/重启,状态查询(最新握手/流量/端点)
-- **RT-3d 站点互联**:多站点 WireGuard 互联,自动添加对方子网路由
+- **RT-3a WireGuard 接口**:WireGuardController,服务端/客户端密钥对生成、wg-quick 配置管理(AllowedIPs 路由)、服务启停与状态查询(最新握手/流量/端点)
+- **RT-3b WireGuard 页面**:WireGuardPage,服务启停 + 密钥管理 + Peer 列表
+- **RT-3c 站点互联**:多站点 WireGuard 互联,自动添加对方子网路由
 
 #### RT-4 OpenVPN 服务
 - **RT-4a 服务管理**:systemctl 封装,启动/停止/重启
@@ -298,6 +343,15 @@ Rainbow 可部署在 **Windows/macOS** 常开设备上,提供**系统监控、
 - **RT-5b tc 队列管理**:QosManager 封装 tc qdisc/class/filter,支持 fq_codel/CAKE 两种算法
 - **RT-5c 带宽状态监控**:实时队列统计、接口速率查看
 
+#### RT-6 Windows 网络路由(平台专属)
+- **RT-6a 路由管理(Windows)**:WindowsRouteManager,route print
+- **RT-6b 多 WAN 路由(Windows)**:WindowsFailoverManager
+- **RT-6c 故障检测切换(Windows)**:WindowsFailoverManager,ping 检测 + 路由切换
+- **RT-6d VLAN 子接口(Windows)**:Hyper-V PowerShell(需管理员权限 + Hyper-V 角色)
+- **RT-6e WireGuard(Windows)**:WindowsWireGuardManager
+- **RT-6f OpenVPN(Windows)**:WindowsOpenVpnManager
+- **RT-6g PPPoE 拨号(Windows)**:WindowsPppManager,rasdial
+
 ---
 
 ### 3.6 STAT — 数据统计
@@ -318,6 +372,7 @@ Rainbow 可部署在 **Windows/macOS** 常开设备上,提供**系统监控、
 - **STAT-1b 小时级汇总**:GroupBy 网口+小时,SUM(流量),MAX(速率峰值)
 - **STAT-1c 日级汇总**:GroupBy 网口+天,SUM/Rollup,日峰值
 - **STAT-1d 采集指标**:Rx/Tx 字节、包、错误、丢弃 8 项跨平台指标(NetworkInterface API 可得;FIFO/帧/组播/载波/碰撞等 Linux 专属硬件字段已精简以统一跨平台)
+- **STAT-1e 流量趋势图表**:StatsPage ECharts 多曲线图展示网口流量趋势
 
 #### STAT-2 设备流量统计
 - **STAT-2a 分钟级采集**:从 nf_conntrack **逐连接跟踪字节增量**采集每设备流量(以连接五元组为键,按连接各自做差累加,从根本上修复旧版"按 IP 求和活跃连接再做差"导致的系统性欠计),含连接数/新建连接/DNS 查询。DeviceStat 冗余存储 MemberId/GroupId,DeviceHourStat/DeviceDayStat 继承冗余字段
@@ -339,6 +394,7 @@ Rainbow 可部署在 **Windows/macOS** 常开设备上,提供**系统监控、
 #### STAT-4 数据生命周期
 - **STAT-4a 过期清理**:分钟级保留 7 天、小时级保留 90 天、日级保留 365 天
 - **STAT-4b 定时任务**:每天凌晨 3:00 执行清理,TimerX 调度
+- **STAT-4c 三级汇总(Windows)**:复用 StatAggregator,Windows 平台同样可用
 
 ---
 
@@ -353,11 +409,13 @@ Rainbow 可部署在 **Windows/macOS** 常开设备上,提供**系统监控、
 - **OPS-1f 快捷操作**:一键断网/保存防火墙/刷新/后台管理/系统设置入口
 
 #### OPS-2 系统监控
-- **OPS-2a 系统信息**:主机名、操作系统、内核版本、运行时间、CPU 型号
-- **OPS-2b 健康检查**:`/api/health` 端点,StarAgent 定期探测
-- **OPS-2c 网络诊断**:内置 Ping/Traceroute 工具,Web 界面操作
-- **OPS-2d 连接数监控**:`/proc/net/nf_conntrack` 当前连接总数
-- **OPS-2e 连接详情**:实时查看当前所有活跃连接详情(来源/目的 IP:Port、协议、状态、收发字节/包数),支持后端分页排序和高级搜索,可筛选指定设备的进出连接
+- **OPS-2a 系统信息接口**:主机名、操作系统、内核版本、运行时间、CPU 型号
+- **OPS-2b 健康检查端点**:`/api/health` 端点,StarAgent 定期探测
+- **OPS-2c 网络诊断接口**:内置 Ping/Traceroute 工具,Web 界面操作
+- **OPS-2d 诊断页面**:DiagnosticPage,输入/按钮/文字输出
+- **OPS-2e 连接数监控**:`/proc/net/nf_conntrack` 当前连接总数
+- **OPS-2f 连接详情接口**:实时查看当前所有活跃连接详情(来源/目的 IP:Port、协议、状态、收发字节/包数),后端分页排序筛选 + Device 名称回填 + DNS 反查域名
+- **OPS-2g 连接详情页面**:`/network/connections` 页面,DataTable 展示来源/目的 IP:Port、协议、状态、收发字节/包数、设备名
 
 #### OPS-3 配置管理
 - **OPS-3a 配置备份**:文件级备份(dnsmasq/iptables/ppp/network),ConfigSnapshot 表记录
@@ -369,6 +427,7 @@ Rainbow 可部署在 **Windows/macOS** 常开设备上,提供**系统监控、
 - **OPS-4a 操作日志查询**:NetworkLog 表(按天分表),按时间/命令/操作/结果筛选,分页查询
 - **OPS-4b 命令审计详情**:stdout/stderr 完整输出、退出码、执行耗时
 - **OPS-4c 日志导出**:CSV/JSON 格式导出
+- **OPS-4d 操作日志页面**:LogPage,列表/筛选/详情/导出
 
 #### OPS-5 系统设置前端
 - **OPS-5a 主题切换**:8 套预设主题、深色/浅色/跟随系统
@@ -376,6 +435,7 @@ Rainbow 可部署在 **Windows/macOS** 常开设备上,提供**系统监控、
 - **OPS-5c 语言切换**:中文/英文,react-i18next 集成,`ApiMessages` 后端多语言
 - **OPS-5d 关于页面**:版本号、开源许可、GitHub 链接、技术栈信息
 - **OPS-5e 在线升级**:检测 GitHub Releases 或自定义服务器上的新版本,下载 zip 更新包,解压覆盖后重启(StarAgent 守护自动拉起)。参考 CrazyCoder 的 NewLife.Net.Upgrade 机制。
+- **OPS-5f 在线升级页面**:SettingsPage UpgradeSection,检测/下载/升级操作 UI
 
 ---