迫于没钱,买不起 UniFi 全家桶,我做了一个 OpenWrt 下的应用流量识别监控: NetQmon

6 天前
 Steadier

NetQmon 是一个面向 OpenWrt 的开源、自托管网络流量可视化工具。 OpenWrt 上运行 Agent 负责采集网络流量元数据,再发送到 Controller 进行存储、分析和展示。

项目地址 GitHub: https://github.com/jarvis2f/netqmon

在线 Demo: https://demo.netqmon.com

当前支持的功能

架构

OpenWrt
   │
   │ eBPF
   ▼
NetQmon Agent
   │
   │ Flow / Metadata
   ▼
NetQmon Collector
   │
   ├── Application Classification
   ├── Domain / ASN / Protocol
   └── Traffic Storage
   │
   ▼
Controller Web UI

Agent 尽量保持轻量,主要分析和存储工作放在 Collector 侧完成,避免给 OpenWrt 本身增加太多压力。 Controller 不使用 Luci 进行构建,UI 就拥有了很大的自由性。

Controller Web UI 截图

2335 次点击
所在节点    OpenWrt
50 条回复
zhcode
6 天前
我的路由是 Debian13 ,agent 可以编译成 linux 通用二进制吗
mylofsh
6 天前
和 luolei 的有啥区别? https://github.com/foru17/neko-master
Steadier
6 天前
@isbase 我的家庭网络当前 OpenWrt 是作为旁路由(单臂路由)使用的,主路由是一台中兴的星云 Max ,因此在我的家庭环境下 NetQmon 的内网流量是统计不到。但是我最近看到有人已经在进行星云 Max 的 OpenWrt 固件适配,因此未来我可能会选择让 OpenWrt 作为我的主路由。
Steadier
6 天前
@zhcode Agent 是使用 Rust 编写的,编译为 linux 的运行版本应该是可行的。
Steadier
6 天前
@mylofsh neko-master 据我观察这个应用应该是针对 Clash / Mihomo / Surge 之类的代理软件的一个流量识别吧。NetQmon 主要是使用 eBPF 进行流量统计的。
Steadier
6 天前
@jeanz #17 兑换码已经通过邮箱进行发送。
Steadier
6 天前
@woshinigege708 #20 分为 Agent 和 Controller 两个分别部署,一个是考虑避免给 OpenWrt 增加过多的资源压力,另外一个是可以不使用 Luci 进行界面的构建,我们就可以使用 NextJS\ShadcnUI 这些现代化的技术构建一个美观一些的流量控制台界面。PS:很喜欢 Unifi 控制台的那种设计
Steadier
6 天前
@jeanz #17
@Rookiewan

出现部分 Unknown 是正常的。目前 NetQMon 的识别分为两步:先通过 eBPF 采集流量,再结合 DPI 、DNS 域名、TLS SNI 、IP/ASN 等信息匹配应用规则,并不是简单地通过端口判断。

由于不会解密 TLS ,如果应用使用了加密 DNS 、隐藏域名、VPN ,或者现有规则没有覆盖,就可能无法识别具体应用,显示为 Unknown 。

后续也会持续完善识别规则,提高应用识别率。感谢体验!
hooleystark
6 天前
正好前段时间自己也写了一个服务在自己的 openwrt 监控, 不过主要做系统和链接的流量进行监视和控制的,没做识别, 大佬来个码体验下, 多谢了
Steadier
6 天前
@hooleystark 兑换码:NQMR-cyKOG7geyODF2kiXrSCPz7lDfQUiWivn ,欢迎试用
hooleystark
6 天前
@Steadier #30 大佬, 已经被别人使用了,可以在发一个到我的邮箱吗
aG9vbGV5c3RhcmtAZ21haWwuY29tCg==
galenzhao
6 天前
mipsel 24kc 有问题,提 issue 了,另外,一个 collector 可以接多个 agent 吗?另外能不能来个 pro 码
yamaidai
6 天前
测试了下 看着还不错 给个授权码 邮箱 emhvdWppYW5qb2VAZ21haWwuY29t
Steadier
6 天前
@hooleystark #31 我在后台看这个应该是还没有被使用的,你需要登录 netqmon.com ,然后在/portal 界面进行兑换。
Steadier
6 天前
@galenzhao 感谢试用,我排查一下。兑换码:NQMR-vawlsd8PfmYlkr0ZLkALcSZC7zJROAAH
Steadier
6 天前
@galenzhao 当前还不支持接入多个 agent ,但是在架构上已经设计了,未来会支持的。
Steadier
6 天前
@yamaidai 兑换码已发送至邮箱,感谢试用
kekeones
6 天前
看着还不错,给个授权码。邮箱 cGVkaXlAZHVjay5jb20=
snakelhb
6 天前
bmJrYXlsZWx1QGdtYWlsLmNvbQ== 看着不错想体验一下!
alsa
6 天前
请问能封锁或者控制某些平台的直播卖货吗?游戏能控制吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/1246925

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX