A new OpenWrt LuCI application for bandwidth monitoring

Hello everyone, over the past few months, I have been developing a network traffic monitoring program based on Rust eBPF technology to monitor the network speed of LAN/WAN devices. Not long ago, I discovered this forum and I hope it can bring help to everyone

LuCI Bandix is a network traffic monitoring application for OpenWrt

The main characteristics are as follows

  1. Modern interface UI
  2. Not dependent on iptables and nftables
  3. Support for LAN/WAN speed monitoring
  4. Support for WAN speed limitation
  5. Support device TCP/UDP connection number monitoring
  6. DNS traffic monitor

There are still many bugs at present, and we welcome everyone to submit suggestions.

Thank you all



15 Likes

I am interested in this and willing but it looks like my router is not supported

GL-inet MT6000

This conclusion is based on ... ?

1 Like

I looked at the releases page and did not see anything that resembled my router.

I should be looking for filogic or am I wrong

I checked the documentation and found that this device is aarch64_cortex-a53 architecture, which is supported, just like my device (cudy tr3000). It may be an environment dependency issue. Have you encountered any problems?

you could download (or ipk file)
截屏2025-10-12 05.43.50

1 Like

Thank you very much, I am not sure why I did not know that I have only had the router for about a year – LOL

Haha, you can use cat /etc/os-release to see your device architecture

Is it intended to make that port reachable from everywhere?

And if support for IPv6 planned? Otherwise it might miss quite a lot of traffic.

Maybe you could capture the stats also based on just MAC address and match that to hosts using DHCP or neighbors

1 Like

Yes, actually 127.0.0.1 is sufficient. This script is designed for easy debugging, such as accessing interfaces directly from other devices in the local area network to troubleshoot.

Yes, IPv6 is currently being planned.

Using DHCP or ARP is not very real-time for device up and down.

What I meant was to collect the stats in eBPF using the ethernet packet instead of IP packet and then in the web interface match the MAC addresses to hosts / IPs by either DHCP or neighbor table because one host might have multiple IP addresses so there might be multiple rows in the interface for the same host otherwise

Thank you, I understand what you mean. When I was imagining it, it was for ordinary home users, without considering the situation of multiple IPs, VLANs, or other more complex network architectures. I am planning to join IPv6

Yeah but with IPv6 it's pretty normal for one host to have multiple addresses. One from DHCPv6 and even multiple more from SLAAC / Privacy Extensions in different prefixes like ULA, GUA etc.

Okay, I will carefully consider how to achieve it. thank you

1 Like

Thanks for great app.
Is it possible to have possibility to move /metrics/*.ring to /tmp, but keep all other settings files in current /usr/share/bandix? (If I want to permanently bind hostnames in hostname_bindings.txt? but do not need long-term traffic stats)

Hello, is it due to insufficient space on your device? At first, historical traffic data was not persistent, and this feature was added only after some users requested it. If you want to place it in /tmp, you can try stopping Bandix first, then execute mkdir /tmp/mytempdir && rm -rf /usr/share/bandix/metrics && ln -s /tmp/mytempdir /usr/share/bandix/metrics

2 Likes

Openwrt applications should not store anything on flash by default, except for application files and config. Also flash writes must always be directly sanctioned by the user (e.g. by pressing the Save button). You really don't want to be responsible for breaking routers by wearing out their tiny flash chips.

If you want to satisfy people who requested persistent logs, add an option for logs storage path, but by default that path must point to somewhere under /tmp.

2 Likes

Indeed. Thats why I ask to add such option.

Great suggestion, I will add an option. In addition, the current flush parameter can alleviate the pressure of flash to a certain extent. Setting it to 1 year or more means that it will have almost no impact on the lifespan of Flash.

2 Likes

So far, so good.