Commit Graph
24 Commits
Author SHA1 Message Date
Su Yijun 965ccc59fc fix: 修复 0.6.1 启动崩溃(main.py 里 sources 导入到模块而非单例,CI 真实 MySQL 测试拦截) 2026-10-24 00:51:30 +08:00
Su Yijun 8220d1150d feat: 发布 0.6.1,接入国内域名列表与官方 IP 段库提升识别率(debug12) 2026-10-24 00:47:02 +08:00
Su Yijun f93370a838 feat(classify): 新增国内域名列表与官方 IP 段兜底识别数据源,发布 0.7.0 2026-10-24 00:45:03 +08:00
Su Yijun 478754e8cf feat: 发布 0.6.0,落库重试、登录限速与权限失效、SQL 聚合提速、CI/容器加固 2026-10-24 00:07:20 +08:00
Su YijunandClaude Opus 5.5 053613412c v0.5.1:成员必须属于分组、可编辑删除;国家分布改为流向图(debug11)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 03:29:23 +08:00
Su YijunandClaude Opus 5.5 e3d6bc9d47 国家 / 地区分布改为流向图,域名国家持久化(debug11)
- 流向图:从本地(WAN 口公网 IP 所在国家,默认中国)飞向各国,线宽 / 气泡大小表示流量,前 5 名标名字和流量;窄屏标签放上方
- 右侧排行:名次、本地标记、条形占比,“无法定位”放最后并说明原因
- 地图数据:跨 180° 经线的环(俄罗斯远东、斐济)移到东侧,不再画出横线
- 新表 domain_geo:记录流量时存下域名连到的 IP 和国家,不再依赖会过期的 DNS 缓存
- README 截图与描述同步

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 03:26:10 +08:00
Su YijunandClaude Opus 5.5 f5d3112450 fix: 成员必须属于分组 / 部门,已有成员可编辑、删除(debug11)
- 后端:dept_id 必填且必须存在,同一分组不重名,分组下有成员时不能删除,部门改名不能重名
- 前端:列表每行编辑按钮,详情页编辑 / 删除;弹窗里分组必选,可就地新建分组;旧数据里没有分组的成员显示“未分组”
- 设备搜索框的提示文字改正

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 03:12:29 +08:00
Su YijunandClaude Opus 5.5 da1975bc92 docs: README / Docker Hub 说明更新到 0.5.0
- 功能列表按导航顺序重写:家庭成员 / 人员、使用场景、审计(外发、私接、13 种通知渠道)、管控命令、日志与留存、用户管理
- 改正过时的设置路径(接入与自检、网络与账号、运行状态里的 DNS 应答来源)
- 时间范围改为 今日 / 昨日 / 本周 / 本月;概览是饼图不是环图
- 识别库补上 MAC 厂商库,注明世界地图数据来源(Natural Earth)
- 忘记管理员密码的处理说明(现在有多个账号)
- 首次使用后的步骤:选场景、分配设备、配置通知
- 截图换成 0.5.0 界面,新增家庭成员页截图

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 03:03:07 +08:00
Su YijunandClaude Opus 5.5 49b379626a v0.5.0:审计参照深信服 AC、家用 / 企业场景、通知参照 EasySub(debug10)
人员与场景
- 人员 / 家庭成员、部门 / 分组,设备归属,按人统计流量、在线时长、常用应用
- 家用:屏幕时间、游戏、短视频上限,熬夜,不良内容,学习时间玩娱乐;企业:工作时间娱乐占比、求职倾向、上班炒股
- 行为洞察(最近 7 天标签附依据)、效率 / 时长排行
- 终端类型识别:主机名、IEEE OUI 厂商、用过的应用、随机 MAC;可手动指定

审计
- 访问日志、时间线、报表按人员 / 部门;规则范围可选人员、部门
- 新规则:大流量外发、私接路由(IP TTL);私接检测页
- RouterOS 管控命令生成(封禁应用、定时断网、限速,附撤销),不写路由器
- Syslog 外发(RFC 5424);网页设置留存天数,显示数据库占用

通知(参照 EasySub)
- 13 种渠道,磁贴选择,可用未保存配置测试,密钥遮盖,旧配置自动迁移
- 规则可选渠道;免打扰期间先记下,结束后汇总推送

界面
- 应用统计大类、小类固定列出,矩形树图;访问目标世界地图与国家分布
- 时间范围只保留 今日 / 昨日 / 本周 / 本月;上下行颜色全站统一

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 02:53:57 +08:00
Su YijunandClaude Opus 5.5 72ca6378f1 fix: 用户管理点「新建用户」无反应(debug10)
用户名规则的提示文案里有 @,vue-i18n 把它当链接消息语法,编译失败导致弹窗渲染中断。
字面量改写成 {'@'};check-i18n 构建前把所有文案编译一遍,同类错误在构建时就会报出。
输入框 pattern 末尾的 - 转义,Chrome 的 v 模式正则下原写法无效。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 02:00:01 +08:00
Su YijunandClaude Opus 5.5 bc10d9ceb7 v0.4.0:审计系统、用户权限、DPI 协议下钻,修复实时流量上下行一致
审计(debug8)
- 访问日志:按“访问”记录终端访问了什么,进行中的访问每分钟写入并更新,可筛选、导出 CSV,保留 30 天
- 终端详情新增访问日志、上网时间线
- 审计规则(大类 / 分类 / 应用 / 域名 / 流量 / 新设备,可限星期、时段、终端),5 个模板
- 通知推送:企业微信、钉钉、飞书、Bark、Telegram、Webhook;发送成功才标记已推送
- 日报、周报、操作日志

debug9
- 只看主路由表的默认路由,排除 DHCP 服务接口:策略路由表指向旁路由时 LAN 网桥被当成 WAN,上下行叠加成几乎一样
- 多条 WAN 合并成一张卡,全网状态始终一排
- 应用统计改成维盟式 DPI 协议三级下钻:大类 → 小类 → 应用,各列“数值 | 本级占比”,可排序、可停止刷新
- sing-box:按规则集 / 策略组名识别应用;实时连接显示策略组和出口节点;新增“代理分流”
- 访问目标显示国家 / 地区及分布
- 管理员与普通用户:普通用户只读,用户管理,删除后令牌立即失效
- 手机上饼图图例移到下方,访问日志表不再横向滑动

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 01:44:08 +08:00
Su YijunandClaude Opus 5.5 ace2eaa3a5 feat: debug7/8 接入 sing-box 与 MosDNS、ASN 识别、识别库自动更新、全站布局审计(v0.3.0)
识别准确度(debug7)
- 可选接入 sing-box Clash API:按来源终端 + 域名 + 字节记账,代理隧道与 FakeIP 流量不重复计算;未接入时代理机器流量标为旁路代理隧道
- 可选接入 MosDNS 审计日志:终端 + IP → 域名
- 地址与密钥由用户在 系统设置 → 外部数据源 填写(或环境变量),不填不启用
- IP→ASN 库(iptoasn.com,PDDL,运行时每天下载),无域名流量按归属识别;实时连接 / 访问目标显示归属与国家
- 健康指数新增旁路代理提示;概览应用数区分今日出现与规则库总数

识别库自动更新(debug8)
- 每天检查 v2fly 最新提交,下载转换后自检(抽样域名、应用数),通过后热加载,失败保留旧库
- 识别规则页新增识别库面板(来源、版本、规模、许可证、检查结果、自动更新开关)
- 转换逻辑移到 app/classify/v2fly.py,生成文件记录来源提交

布局审计
- 手机上表格隐藏次要列、名称下补充关键信息;子标签横向滑动;统计卡改为卡片样式;平板断点调整
- 系统设置拆为四个子标签;识别规则页整理;重复名称只显示一次;少量数据点的折线显示数据点
- 测试环境不启动后台定时任务,修复整点落库导致的偶发失败

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 00:47:35 +08:00
Su YijunandClaude Opus 5.5 1f0e43806a feat: debug5 图表对齐维盟、debug6 接入自检、流量流向改为实时连接与访问目标(v0.2.1)
- 流量构成改为实心饼图 + 可翻页图例;实时流量改为维盟式流量卡片(实时 / 历史 / 历史用户、单位与显示方式下拉、累计与实时速度)
- 所有折线图统一:上行钢蓝、下行青绿,正向双线,图例居中,纵轴紧凑单位;健康指数仪表盘标出差 / 中 / 良 / 优
- 配置 RouterOS API 时每 5 秒采样 WAN 口计数器,实时流量为秒级(ROS_RATE_SECONDS)
- 流量流向去掉桑基图,改为实时连接(按连接的终端、远端、应用、速率、识别依据)和访问目标排行(含只有 IP 的目标,可按主域名合并)
- 接入自检:只读读取 mangle 规则,检查 sniff-tzsp 的目标端口 / 地址 / 停用 / 命中数,生成修改命令;健康指数增加镜像规则一项

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 00:18:26 +08:00
Su YijunandClaude Opus 5.5 4c92db8042 feat: debug4 参考维盟 4.0 改版,新增健康指数、DHCP、WAN 状态等(v0.2.0)
界面
- 新 logo“七层”与 favicon;左侧图标菜单 + 顶栏面包屑 / 功能搜索;淡灰紫底色 + 白色圆角卡片
- 登录页、安装向导改为左侧等距插画 + 右侧圆角卡片
- 主机监控分为 在线终端 / 全部终端 / DHCP 租约 / 命名管理

新功能
- 全网概览仪表盘:路由器状态、网络健康指数(逐项扣分与建议)、在线终端、DHCP 地址池、WAN 线路状态、历史在线数
- 终端在线时长、连接数;DHCP 租约列表;应用实时速率;顶栏搜索;CSV 导出
- RouterOS 只读账号额外读取地址池、DHCP 服务器 / 客户端、PPPoE 客户端
- 启动时自动为旧库补新增的列

应用识别(原 0.1.5)
- 导入 v2fly/domain-list-community(MIT),约 2800 个应用、3.8 万条域名
- SNI 识别:TLS ClientHello 与 QUIC Initial(RFC 9001/9369)解析,按连接识别
- 域名查找改为 连接 SNI → 终端 DNS/SNI → 全网 IP 表

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 23:41:00 +08:00
Su YijunandClaude Opus 5.5 28135807bd feat: debug3 应用三级分类、图表重做、终端按 MAC/IP 命名(v0.1.4)
- 应用分类参照 Panabit 改为 应用大类 → 小类 → 应用:10 个大类、41 个小类、277 个应用;
  CNAME 指向 CDN 时归到 CDN 厂商;ICMP / GRE / ESP 按协议识别;已发布的应用和分类 ID 全部保留
- 图表重做:流量构成双层环图 + 排行表、按应用大类堆叠的趋势(可切换上下行)、
  带名次和占比的 Top 排行、桑基图中间列改为应用大类;配色按大类固定并通过色盲校验
- 终端命名:按 MAC 或按 IP,新增命名管理,可提前给未上线设备命名,旧备注名自动迁移
- DNS 嗅探卡片说明作用并显示应答来源;补充内网自建 DNS(AdGuard/Pi-hole)的说明

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 22:44:17 +08:00
Su YijunandClaude Opus 5.5 ab5c9f78e5 fix: 配置 ROS_URL 后概览页 500('Response' object has no attribute 'get')(v0.1.3)
httpx 的 raise_for_status() 成功时返回响应对象本身,原写法把响应对象当成 JSON 存进了路由器状态。
同时给出可操作的 RouterOS 连接错误提示,并新增模拟 REST 接口的测试。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 01:02:44 +08:00
Su YijunandClaude Opus 5.5 c8af9373ac fix: 自动建库时未去掉库名,导致仍报 Unknown database
SQLAlchemy 2.0 的 URL.set(database=None) 表示不修改,改用 _replace。由 CI 中的真实 MySQL 安装向导测试发现。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 00:49:07 +08:00
Su YijunandClaude Opus 5.5 578b65636f fix: MySQL 复合主键不自增;CI 把 MySQL 测试报错写入公开注释
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 00:46:34 +08:00
Su YijunandClaude Opus 5.5 1488ab667c feat: debug2 首次使用安装向导,在网页上填写 MySQL 信息(v0.1.2)
- 数据库连接改为运行时初始化:DATABASE_URL > data/db_config.json > 安装向导
- 新增 /api/setup/status|test|save 与安装向导页(连接数据库 → 设置管理员)
- 连接失败给出可操作的中文提示;有配置但暂时连不上时自动重试,不需要重填
- docker-compose.yml 不再包含数据库设置;README / DOCKERHUB.md 改为“建库 → 启动 → 网页填写”
- CI 增加真实 MySQL 8.4 上的安装向导测试

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 00:42:29 +08:00
Su YijunandClaude Opus 5.5 2391acd31b docs: debug2 默认连接已有 MySQL,README 指导建库建账号(v0.1.2)
- docker-compose.yml 只含 ros-dpi,DATABASE_URL 指向用户已有的 MySQL
- README / DOCKERHUB.md 新增“准备数据库”:SQL、图形界面操作、远程连接注意事项、常见错误
- 自带 MySQL 的部署方式改为 docker-compose.with-mysql.yml

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 00:35:01 +08:00
Su YijunandClaude Opus 5.5 75ec483768 ci: Docker Hub Overview 同步改用 peter-evans/dockerhub-description
旧脚本用已变更的 /v2/users/login + JWT 认证,同步一直失败。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 00:25:48 +08:00
Su YijunandClaude Opus 5.5 9626ab936b ci: 升级 actions 版本(Node.js 20 弃用)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 00:20:21 +08:00
Su YijunandClaude Opus 5.5 15ca8feb11 docs: debug1 README 贴出完整 docker-compose 与首次使用说明(v0.1.1)
- docker-compose.yml 改为自包含,README / DOCKERHUB.md 直接贴出全文
- 说明首次使用无需手动配置 MySQL,补充外部 MySQL、改密码、找回管理员的方法
- 外部 MySQL 库不存在时自动创建
- CI:增加 Docker Hub 配置诊断步骤,用户名兼容放在 Variables

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 00:11:50 +08:00
Su YijunandClaude Opus 5.5 f3e9fdb2af feat: ROS-DPI v0.1.0:RouterOS 终端流量与应用统计面板
- IPFIX / NetFlow v9 采集 + TZSP DNS 嗅探识别应用,可选 ROS 只读 REST 轮询
- 内置 100+ 应用规则库,支持自定义域名 / IP 段 / 端口规则
- 按分钟 / 小时 / 天汇总写入 MySQL
- 全网概览、主机监控、应用统计、流量流向(桑基图)、识别规则、系统设置
- 中英双语,深浅色主题,T568B 线色设计语言
- Docker 多架构镜像,GitHub Actions 测试与发布

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 23:51:02 +08:00