现代美观的 Clash 流量可视化工具: Clash Master - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
foru17

现代美观的 Clash 流量可视化工具: Clash Master

  •  
  •   foru17
    foru17 2 月 6 日 7355 次点击
    这是一个创建于 78 天前的主题,其中的信息可能已经有所发展或是发生改变。
    昨晚写了一个 OpenClash (也兼容其他使用 Clash 内核的应用) 的流量可视化面板。

    主要是为了解决原生面板在数据分析和历史趋势查看上的不足,直观感知家庭网络流量。

    推荐家里用 OpenClash 或 Clash 内核的朋友体验下

    旁路部署:非侵入式设计,不影响原 Clash 核心稳定性
    多维度统计:域名 / IP / 节点流量 / ASN / 地理位置实时监控
    30 分钟~24 小时趋势分析
    多后端监控:支持同时管理多个 Clash 实例
    数据持久化
    部署便捷:Docker 一键启动


    代码已开源,欢迎 Star 和试用:
    https://github.com/foru17/clash-master



    92 条回复    2026-02-12 20:58:06 +08:00
    xavierniu
        1
    xavierniu  
       2 月 6 日
    看起来相当不错,支持 mihomo 吗?
    foru17
        2
    foru17  
    OP
       2 月 6 日   1
    @xavierniu 支持,我就是用的 mihome 内核。
    JimLee0921
        3
    JimLee0921  
       2 月 6 日
    考虑做个 v2ray 的嘛哥
    foru17
        4
    foru17  
    OP
       2 月 6 日
    @JimLee0921 原理应该都差不多,把 v2ray 的日志丢过去让 AI 写个脚本处理应该也能适配。
    PrinceofInj
        5
    PrinceofInj  
       2 月 6 日 via Android
    卧槽,终于有这种程序了。之前因为 mihomo 不支持这个功能一直停留在原版 clash ,就是为了使用 profile 功能。
    Flowing
        6
    Flowing  
       2 月 6 日
    家里路由器装 shellclash 的可以用吗
    Melting
        7
    Melting  
       2 月 6 日
    @Flowing #6 我试了一下,也是可以的
    /td>
    zoharSoul
        8
    zoharSoul  
       2 月 6 日
    可以按客户端 ip 来看访问网站吗?
    drlee
        9
    drlee  
       2 月 6 日
    部署完了,发现打不开 web
    compose 支持端口修改不是更好吗?还要整个 override 有点麻烦了
    foru17
        10
    foru17  
    OP
       2 月 6 日
    @drlee v1.0.2 版本的应该修复这个问题了。可以重新拉下。另外我正在发布 1.0.3,可以稍等下。
    drlee
        11
    drlee  
       2 月 6 日
    @foru17 谢谢罗磊,我正要说 override 不生效
    fantasynoff
        12
    fantasynoff  
       2 月 6 日
    很棒,如果能把 zashboard 功能吸收一下,直接当成前端控制+统计,那就无敌了
    dddedd
        13
    dddedd  
       2 月 6 日
    @fantasynoff +1 zashboard 的连接拓扑也很实用
    y1y1
        14
    y1y1  
       2 月 6 日
    非常酷炫

    考虑添加分 app 流量统计吗

    还有 webui 端口能不能改成可以修改的
    CodersZzz
        15
    CodersZzz  
       2 月 6 日
    羡慕用这个的, 我用的 v2ray 的。
    foru17
        16
    foru17  
    OP
       2 月 6 日
    @y1y1 我之前也考虑了这个功能(更像 UniFi OS 那套),比如 YouTube 流量,TikTok 流量,Netflix 流量。我但是不紧急,后面迭代再弄吧。
    qiuyue0
        17
    qiuyue0  
       2 月 6 日
    连接后端是不是没有做连通性测试?
    FaCai
        18
    FaCai  
       2 月 6 日
    @Melting shellclash 可以?那必须冲冲冲
    EastLord
        19
    EastLord  
       2 月 6 日
    哥们,你为啥不用你推特的头像
    GaranPoe
        20
    GaranPoe  
       2 月 6 日
    @drlee
    我部署完也是访问不了 web 为啥?
    drlee
        21
    drlee  
       2 月 6 日
    @GaranPoe 如果你端口 3000 已经占用,而 override 自定义端口实际上是不工作的,就访问不了 web
    drlee
        22
    drlee  
       2 月 6 日
    @foru17 发布没
    foru17
        23
    foru17  
    OP
       2 月 6 日
    @drlee
    docker pull foru17/clash-master:1.0.3

    1.0.3 版本做了不小改动。
    Midnight
        24
    Midnight  
       2 月 6 日
    可以,我装了 不过启动不久后就会把我的内核搞崩。。。
    Midnight
        25
    Midnight  
       2 月 6 日
    停掉你的项目 openclash 才正常。。。不然一直启动一直死
    foru17
        26
    foru17  
    OP
       2 月 6 日
    @Midnight 啥?这个就是跟 yacd,zashboard 面板一样的原理,就是保持通信而已,是不是你跑 clash 的机器硬件有点弱?
    foru17
        27
    foru17  
    OP
       2 月 6 日
    @Midnight 另外补充下,我不建议将这个 Docker 容器与 OpenWrt 部署在同一台设备上。由于其依赖较多且数据库有持续的 I/O 读写,可能比较消耗硬件资源。该项目我也才刚运行一天,还需要进一步观察 CPU 和内存的占用情况。
    foru17
        28
    foru17  
    OP
       2 月 6 日
    @EastLord V 站我这个头像可能都用了 10+年了。
    Midnight
        29
    Midnight  
       2 月 6 日
    @foru17 两台不同的机器,openclash 运行在 N100 8G
    foru17
        30
    foru17  
    OP
       2 月 6 日
    @Midnight 那应该不至于,我 Openclash 运行在 N5105 的机器上,比你硬件还低一点。 我 Clash master 也部署在同一台机器上。而且我 Clash Master 同时监听了内网 LAN 和远程两个实例,我刚看了下虚拟机 CPU 基本没波动。服务也一直在线。
    q000q000
        31
    q000q000  
       2 月 6 日
    概览的 TOP 代理 里带有国旗 EMOJI 的节点名中的国旗 EMOJI 会不显示,是不是 BUG ?
    xuzhzzz
        32
    xuzhzzz  
       2 月 6 日
    不敢统计,统计的话我的 top domain 怕得是成人网站了
    Magicmadoka
        33
    Magicmadoka  
       2 月 6 日
    建议把镜像大小优化一下,默认镜像太大了。[img][/img][img][/img]
    精简之后运行正常。
    shmilypeter
        34
    shmilypeter  
       2 月 6 日
    surge 有类似的功能吗,能不能让老刘做一个
    intr0Trailer
        35
    intr0Trailer  
       2 月 6 日
    添加 openclash 地址,提示 api error:500 ,是啥原因
    Magicmadoka
        36
    Magicmadoka  
       2 月 6 日
    @intr0Trailer API 端口 3001 不要修改
    foru17
        37
    foru17  
    OP
       2 月 6 日
    @Magicmadoka 精简这块,有啥建议不?我现在还在做前端的功能相关,后端依赖这块还没细看。
    intr0Trailer
        38
     
       2 月 6 日
    @Magicmadoka #36 3001 已经被占用了,不该就没法用了?
    Magicmadoka
        39
    Magicmadoka  
       2 月 6 日 via Android
    @foru17 我主要是 mihomo 已经部署在 ros 上,想说精简一下一起丢 ros 路由器上得了。
    Magicmadoka
        40
    Magicmadoka  
       2 月 6 日 via Android
    @intr0Trailer 修改了目前只是监听端口变了,程序内部是写死的,等作者更新吧
    Magicmadoka
        41
    Magicmadoka  
       2 月 6 日 via Android
    @foru17 我目前只精简了构建镜像的步骤,测试完功能我 pull 到 github
    foru17
        42
    foru17  
    OP
       2 月 6 日
    @Magicmadoka 我是不建议这类应用跟网关机器放到同一个地方,这种服务日志爆了啥的很容易出事,玩意影响到主路由,你家网络就仆街了,我都是放到隔离的机器。OpenWrt 老老实实只做最基础的网络相关。
    lemon6
        43
    lemon6  
       2 月 6 日
    @Melting 请教一下,shellcrash 的后端主机地址和端口应该填啥,为啥我一直提示 API error: 500
    Magicmadoka
        44
    Magicmadoka  
       2 月 6 日 via Android
    @foru17 嗯,就是要观察这个长期跑会不会 OOM ,mihomo 和 tailscale 都部署在 ros 上,我用了挺久了,内存占用基本稳定。
    mikaelson
        45
    mikaelson  
       2 月 6 日
    @Flowing #6 singbox 内核可以吗?
    Jiajin
        46
    Jiajin  
       2 月 6 日
    确实蛮美观的,能分享下 vibe coding 写前端的经验吗
    Ccf
        47
    Ccf  
       2 月 6 日
    网页版 clash mate?
    xavierniu
        48
    xavierniu  
       2 月 6 日
    可否让浏览器发送请求,类似于 MetacubeXD ,它跟 clash 的通信是在前端完成的。我现在的服务部署在家里的内网,要连接公司内网,原来都是在我 MAC 的 Chrome 上通信的(连接 VPN ),clash master 似乎不行?
    foru17
        49
    foru17  
    OP
       2 月 6 日
    @xavierniu 自己弄一个公网转发服务,转发你内网的 openclash:port 服务,tailscale ,ddns + 端口转发,cf tunnel 都行。我就是这么弄得。
    FrankAdler
        50
    FrankAdler  
       2 月 7 日
    用上了,很方便,顺便体验了下 pve 从 oci registry 拉取镜像使用 lxc 运行,挺方便的
    Melting
        51
    Melting  
       2 月 7 日
    @lemon6 #43 后端地址就是你 shellclash 的 ip ,端口默认应该是 9999 ,可以在 shellclash 面板设置看到
    foru17
        52
    foru17  
    OP
       2 月 7 日   1
    v1.0.4 刚刚发布了,大家提的问题都修复了
    @qiuyue0 添加了连通测试
    @q000q000 emoji 的问题修复了,现在默认显示原始节点名称
    @intr0Trailer @lemon6 现在支持自定义端口部署,详情可以看文档
    lemon6
        53
    lemon6  
       2 月 7 日
    @foru17 sqlite 的写入逻辑有点问题,一直在大量的 IO 写入,一小时就已经 2GB 的了,应该是“批量提交”机制没做好
    ronman
        54
    ronman  
       2 月 7 日
    试用了下很不错,提个需求希望可以把规则域名分布中点击可以展示具体域名,因为我发现我有很多漏网之鱼的流量,我希望借此优化下我的分流规则,感谢
    Magicmadoka
        55
    Magicmadoka  
       2 月 7 日

    除了磁盘写入量有点高,实际运行占用挺低的,等这个问题修好了再部署一次。
    yoyoyoyolol
        56
    yoyoyoyolol  
       2 月 7 日 via iPhone
    昨晚写的?一晚上写出来的吗这么牛逼
    foru17
        57
    foru17  
    OP
       2 月 7 日 via Android
    @yoyoyoyolol 准确说第一版是四个小时
    damichifan
        58
    damichifan  
       2 月 7 日
    漂亮呀
    foru17
        59
    foru17  
    OP
       2 月 7 日
    @Magicmadoka @lemon6
    定位到问题了,写入逻辑是有问题,下一版改成了批量写入+限流,我再跑观察下。
    huifeideyu1991
        60
    huifeideyu1991  
       2 月 7 日
    curl -fsSL https://raw.githubusercontent.com/foru17/clash-master/main/setup.sh | bash 执行完后访问 localhost:3000 法访问
    foru17
        61
    foru17  
    OP
       2 月 7 日
    @huifeideyu1991 建议先用 docker 部署。
    Thiece
        62
    Thiece  
       2 月 7 日
    @foru17
    你用 3000 端口不是和 AdGuardHome 冲突吗?
    xavierniu
        63
    xavierniu  
       2 月 7 日
    @foru17 公司内网不敢搞穿透,违规操作。。
    yoyoyoyolol
        64
    yoyoyoyolol  
       2 月 7 日
    @foru17 大佬能讲讲怎么 ai 编程的吗?我感觉我还没入门。先让 ai 生成一个原型,然后确定技术栈,一个一个模块的编写?我感觉我 4 个小时做不出来这么复杂的项目,项目复杂一些 ai 就经常出 bug ,而且问一个问题要等几分钟。你是开了多个 ai agent 同时问吗?
    foru17
        65
    foru17  
    OP
       2 月 7 日
    @Magicmadoka @lemon6 @ronman

    v1.0.6 版本大更新,优化了日志写入逻辑,理论上应该会大大减少 IO ,另外 Rules 规则流量分析也上线了,有一个 Rule Flow 数据流可视化,应该很直观了。


    foru17
        66
    foru17  
    OP
       2 月 7 日
    @Magicmadoka @lemon6
    我刚刚跑了一段时间,I/O 硬盘读写是下降了,但是每天算下来还是有大十几 GB 的 I/O (之前没优化每天 200G ),还是得继续优化日志的写入逻辑。这块有点到我技术栈盲区了,得去研究下。
    ronman
        67
    ronman  
       2 月 7 日
    @foru17 #63 感谢,已升级,但是好像非默认端口又遇到 500 错误了
    nijux
        68
    nijux  
       2 月 7 日
    希望能做到本地优先
    添加本地 ip 数据库选项,数据通过本地数据库查询,昨天使用中发现是数据查询用的 api.ipinfo.es ,虽然有缓存...
    favicon 希望也能添加通过本机的方式去获取的选项。
    foru17
        69
    foru17  
    OP
       2 月 7 日
    本地 ip 数据库选项这个好像是可以,集成 GeoIP 之类的。
    请教:favicon 希望也能添加通过本机的方式去获取的选项 - 这个本地一般是咋获取?
    foru17
        70
    foru17  
    OP
       2 月 7 日
    nijux
        71
    nijux  
       2 月 7 日
    @foru17 问了下 claude 给的方案是 get-website-favicon + sharp 处理
    nijux
        72
    nijux  
       2 月 7 日
    或者可以给个默认图标,多一个选项是 不开启网站 favicon
    foru17
        73
    foru17  
    OP
       2 月 7 日
    @nijux

    v1.0.7 版本已经支持关闭 favicon

    genesisx
        74
    genesisx  
       2 月 7 日
    有没有考虑用 clash verge 改,重新用 ai 写的怕各种潜在 bug
    foru17
        75
    foru17  
    OP
       2 月 7 日
    @genesisx 两个产品功能不同,一个是控制面板,一个是旁路数据处理和视觉化,放到一起容易炸。
    weiweiwitch
        76
    weiweiwitch  
       2 月 7 日
    @foru17
    提个建议啊,把地图功能去掉吧。
    作为国人,地图上缺了点什么。
    foru17
        77
    foru17  
    OP
       2 月 7 日
    @Magicmadoka @lemon6

    最新版本 v1.0.7,做了多重优化,这是我本机对比 v1.0.4 的数据对比。暂时先这样吧,我后面可能要换底层数据库,应该效果会更明显点。

    Magicmadoka
        78
    Magicmadoka  
       2 月 7 日
    @foru17 我还是 1.0.4 ,跑了 1 天多了。数据库大小也不大。
    foru17
        79
    foru17  
    OP
       2 月 7 日
    @Magicmadoka 优化的不是数据库大小,是数据库写入硬盘,保存的逻辑,会影响硬盘 I/O 的量(硬盘写入,长久会影响硬盘寿命)。之前版本的坑很大,升级到 v1.0.7 先吧。
    Magicmadoka
        80
    Magicmadoka  
       2 月 7 日
    BLOCK I/O 21.1MB / 20.3GB 确实有点多,我跑了 24 小时了。不过大陆流量基本都没送到 mihomo 。
    foru17
        81
    foru17  
    OP
       2 月 7 日
    @Magicmadoka v1.0.7 底层数据结构改动多,升级最好直接清空数据 frest start 。可以再用 v1.0.7 跑一天看看。
    Magicmadoka
        82
    Magicmadoka  
       2 月 8 日
    新版的镜像看起来更大了。
    /app # du -sh /app/* 2>/dev/null | sort -hr
    839.0M /app/node_modules
    160.7M /app/apps
    30.4M /app/data
    64.0K /app/packages
    8.0K /app/docker-start.sh
    4.0K /app/package.json
    node_modules 文件夹过大了。
    你可以使用 pnpm deploy 精简一下依赖。
    fantasynoff
        83
    fantasynoff  
       2 月 8 日
    有没有可能开放一种模式:仅配置写入文件,统计数据都放在内存?

    搭在软路由上,emmc 这么频繁写入有点怕
    foru17
        84
    foru17  
    OP
       2 月 8 日
    @Magicmadoka @fantasynoff

    v1.0.8 版本进一步优化,引入了内存缓存与 30 秒日志刷新机制,写入量较 v1.0.7 又降低了 86%。
    以监控两个 OpenClash 实例为例,日均 I/O 写入约 1.6GB 。具体数值因家庭网络流量而异,但整体表现已在可接受范围内了。

    foru17
        85
    foru17  
    OP
       2 月 8 日
    @Magicmadoka docker 上条版本说错了,是 v1.0.9 ,镜像大小这个我也优化了,现在下降到 300MB+ 了。
    Magicmadoka
        86
    Magicmadoka  
       2 月 8 日 via Android
    @foru17 新版写入确实好多了,我观察到 10-15 秒钟拉取一次 mihomo 的数据,这是出于什么考虑
    Magicmadoka
        87
    Magicmadoka  
       2 月 9 日 via Android
    网页自动更新图表数据用 websocket 会不会比 http get 好点?
    foru17
        88
    foru17  
    OP
       2 月 10 日
    @Magicmadoka v1.1.4 支持 ws ,根据文档去配置下 ws 端口和转发。不配置默认还是 http 轮训。
    googooda
        89
    googooda  
       2 月 10 日
    小白请教下,桥接模式下打不开网页,防火墙添加目标区域为任意区域的规则能打开网页,但登录会显示连接被拒绝,只有改成 host 模式才能登录
    locoz
        90
    locoz  
       2 月 11 日
    巧了,刚想弄个流量统计的,让 ChatGPT Pro 调研一下有没有现成的东西就赶上热乎的了
    fantasynoff
        91
    fantasynoff  
       2 月 12 日
    up 更新的好勤快,但是内容一无所知,不写点 changelog 吗
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1284 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 179ms UTC 17:26 PVG 01:26 LAX 10:26 JFK 13:26
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86