V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
foru17
V2EX  ›  分享创造

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

  •  
  •   foru17 ·
    foru17 · 1 天前 · 3766 次点击
    昨晚写了一个 OpenClash (也兼容其他使用 Clash 内核的应用) 的流量可视化面板。

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

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

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


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



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

    考虑添加分 app 流量统计吗

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

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

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

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


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

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

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

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

    Magicmadoka
        78
    Magicmadoka  
       3 小时 14 分钟前
    @foru17 我还是 1.0.4 ,跑了 1 天多了。数据库大小也不大。
    foru17
        79
    foru17  
    OP
       3 小时 10 分钟前
    @Magicmadoka 优化的不是数据库大小,是数据库写入硬盘,保存的逻辑,会影响硬盘 I/O 的量(硬盘写入,长久会影响硬盘寿命)。之前版本的坑很大,升级到 v1.0.7 先吧。
    Magicmadoka
        80
    Magicmadoka  
       2 小时 58 分钟前
    BLOCK I/O 21.1MB / 20.3GB 确实有点多,我跑了 24 小时了。不过大陆流量基本都没送到 mihomo 。
    foru17
        81
    foru17  
    OP
       2 小时 49 分钟前
    @Magicmadoka v1.0.7 底层数据结构改动多,升级最好直接清空数据 frest start 。可以再用 v1.0.7 跑一天看看。
    Magicmadoka
        82
    Magicmadoka  
       2 小时 17 分钟前
    新版的镜像看起来更大了。
    /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 精简一下依赖。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1045 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 18:40 · PVG 02:40 · LAX 10:40 · JFK 13:40
    ♥ Do have faith in what you're doing.