{"skill":{"slug":"ikuai-report","displayName":"iKuai 流量报表","summary":"从 iKuai 路由器的 ikuai-cli JSON 数据生成可视化 HTML 流量报表（5 标签页、Chart.js 动画图表）。触发词：生成/创建/构建 iKuai HTML 报表、爱快流量报表、ikuai report、ikuai-traffic-report","description":"---\nname: ikuai-report\ndescription: \"从 iKuai 路由器的 ikuai-cli JSON 数据生成可视化 HTML 流量报表（5 标签页、Chart.js 动画图表）。触发词：生成/创建/构建 iKuai HTML 报表、爱快流量报表、ikuai report、ikuai-traffic-report\"\n---\n\n# iKuai 流量报表\n\n生成可视化 HTML 流量报表，纯静态、无外部依赖，直接用浏览器打开。\n\n**输出路径**: `/tmp/ikuai-report.html`\n\n## 快速使用\n\n```bash\npython3 {{SKILL_DIR}}/scripts/generate_report.py\nopen /tmp/ikuai-report.html\n```\n\n## 首次使用：配置 ikuai-cli Auth\n\n每个用户的路由器 IP/Token 不同，**启动脚本会自动检测**，若未配置会报错并提示：\n\n```bash\n# 1. 设置路由器地址\nikuai-cli auth set-url http://<路由器IP>\n# 例如: ikuai-cli auth set-url http://10.10.10.253\n\n# 2. 设置认证 Token（在路由器 Web UI → 系统状态 → API Token 获取）\nikuai-cli auth set-token <你的token>\n\n# 3. 验证配置\nikuai-cli auth status\n```\n\n> **提示**：脚本会自动搜索 PATH 中的 `ikuai-cli`，找不到时回退到 `~/.local/bin/ikuai-cli`，无需硬编码路径。\n\n## 报表结构（5 标签页）\n\n| 标签 | 内容 |\n|------|------|\n| 总览 | 系统状态 + 资源 + 流量 + 网口 + 图表 |\n| 网络配置 | WAN/LAN/DNS/NAT/端口转发/VLAN |\n| 流量分析 | 协议柱图 + 应用 Top20 + 设备 Top20 |\n| 安全状态 | ACL/L7/MAC + VPN + 在线设备 |\n| 系统日志 | 关键事件日志 |\n\n## 数据收集命令\n\n```bash\nikuai-cli monitor system --format json\nikuai-cli monitor traffic-summary --format json\nikuai-cli monitor app-traffic-summary --format json\nikuai-cli monitor protocols --format json\nikuai-cli monitor clients-online --format json\nikuai-cli monitor interfaces-physical --format json\nikuai-cli network wan --format json\nikuai-cli network lan list --format json\nikuai-cli network dns get --format json\nikuai-cli security acl list --format json\nikuai-cli qos ip list --format json\nikuai-cli network dnat list --format json\nikuai-cli log system list --format json --human-time\n```\n\n## 关键 API 字段（实际返回值，与文档常有不符）\n\n| 命令 | 字段 | 说明 |\n|------|------|------|\n| `monitor system` | `sysinfo.stream.total_down/up` | 今日总流量（Bytes） |\n| | `sysinfo.online_user.count` | 在线用户数 |\n| `monitor traffic-summary` | `terminal[].ip_addr / mac / sum_total_down / sum_total` | 设备流量 |\n| | `terminal_total_flow` | 所有设备总流量 |\n| `monitor app-traffic-summary` | `proto3_day[].appname` | 应用名（⚠️ 不是 `app_name`） |\n| | `proto3_day[].total_down/up/total` | 流量（⚠️ 不是 `total_byte`） |\n| `monitor protocols` | `data[].proto_name / total` | 协议分布 |\n| `monitor clients-online` | `data[].ip_addr / client_vendor / client_type` | 在线设备 |\n| `network wan` | `data[].dhcp_ip_addr / internet` | WAN 状态 |\n| `network lan list` | `data[].ip_mask / dhcp_server / vlan` | LAN 配置 |\n| `network dnat list` | `data[].wan_port / lan_addr / lan_port` | 端口转发规则 |\n\n## 故障排查\n\n**\"ikuai-cli 未完成认证配置\"**\n\n```bash\nikuai-cli auth status        # 查看当前配置状态\nikuai-cli auth set-url <IP>  # 设置路由器地址\nikuai-cli auth set-token <token>  # 设置 Token\n```\n\n**API 返回空数据（`{\"data\":[]}`）**\n\n- 路由器不可达 — `ping <路由器IP>`\n- Token 过期 — 重新获取并 `ikuai-cli auth set-token <新token>`\n\n**图表无数据或 Tab 切换失效**\n\n- 用 `node --check /tmp/ikuai-report.html` 验证 JS 语法\n- 确认 `ikuai-cli monitor app-traffic-summary` 有返回数据\n\n## 依赖\n\n- `ikuai-cli` v1.0+（自动检测 PATH）\n- Python 3.6+\n- 报表：纯静态 HTML + Chart.js（CDN）\n","tags":{"latest":"1.0.2"},"stats":{"comments":0,"downloads":480,"installsAllTime":18,"installsCurrent":0,"stars":1,"versions":3},"createdAt":1778085536440,"updatedAt":1778492864292},"latestVersion":{"version":"1.0.2","createdAt":1778121601761,"changelog":"移除硬编码 auth，改为自动检测 + 运行时引导用户配置自己的 ikuai-cli 凭证","license":"MIT-0"},"metadata":null,"owner":{"handle":"veelove","userId":"s17dmjbc6fb2b7tpsde7744bt98660m2","displayName":"VEE","image":"https://avatars.githubusercontent.com/u/47690181?v=4"},"moderation":{"isSuspicious":false,"isMalwareBlocked":false,"verdict":"clean","reasonCodes":["review.llm_review"],"summary":"Review: review.llm_review","engineVersion":"v2.4.24","updatedAt":1780090755587}}