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
---