一个通过 Clash API 获取信息并进行统计后以网页呈现的应用。
- 通过 Clash API 获取连接信息
- 实时统计网络连接数据
- 网页界面展示统计数据
- 数据自动保存到 SQLite 数据库
- 支持自定义配置
- 按 Host/IP 统计流量数据
- 按 SourceIP 统计流量数据
- SourceIP 在线时间分析(甘特图)
- SourceIP 筛选功能,支持多 IP 筛选
- 响应式设计,适配各种屏幕尺寸
- 实时数据刷新和 API 刷新功能
应用会读取同目录下的 config.ini 文件,包含以下配置项:
host: Clash API 主机地址,默认为127.0.0.1:9090secret: Clash API 认证密钥,默认为空interval: 数据刷新间隔(毫秒),默认为1000web_port: Web 服务器端口,默认为8080log_level: 日志级别,默认为warndb_cleanup_days: 数据库清理天数,默认为7db_vacuum_interval: 数据库 vacuum 间隔(小时),默认为24
- 确保 Clash 服务正在运行
- 根据需要修改
config.ini配置文件 - 运行应用:
# 直接运行 go run main.go # 或构建后运行 go build -o clash-statistics . ./clash-statistics
- 打开浏览器访问
http://localhost:8080
data/- 存放 SQLite 数据库文件web/templates/- 存放网页模板文件config.ini- 应用配置文件main.go- 主程序文件web/- Web 服务器相关代码database/- 数据库操作相关代码utils/- 工具函数
/- 重定向到 Host/IP 统计页面/host-stats- Host/IP 统计页面/sourceip-stats- SourceIP 统计页面/online-time- SourceIP 在线时间页面/api/stats- 返回 Host/IP 统计数据的 JSON 数据/api/sourceip-stats- 返回 SourceIP 统计数据的 JSON 数据/api/gantt- 返回在线时间甘特图数据的 JSON 数据/refresh- 手动刷新数据
当前版本:v0.2.4
- Go 语言
- SQLite 数据库
- Tailwind CSS
- Alpine.js
- daisyUI
- 首次运行时会自动创建数据库文件
- 定期清理过期数据,默认保留 7 天
- 支持手动刷新数据和 API 刷新功能
- 所有统计数据都存储在 SQLite 数据库中,确保数据持久化