1

I'm about to get a new ADSL internet connection and the data available is split between me and two other housemates.

As I am going to be the administrator, I was wondering if there is any way to monitor the usage of each person from my own computer.

I've read about QoS but it only helps in setting bandwidth limitations for programs such as BitTorrent. And my modem is definitely capable of QoS.

Can I use the QoS feature to set limitations using IP addresses? If not, what other alternative features can enable me to do this?

14
  • 1
    Can I ask what benefit you are hoping to achieve? Are you looking to split costs by consumption... Or perhaps throttle to prevent bandwidth-hogging? Commented May 28, 2013 at 2:00
  • 1
    using tc on linux, you can put the traffic into buckets but then not throttle the bucket, and check the bucket traffic counts to work out the usage.
    – Sirex
    Commented May 28, 2013 at 2:15
  • @BrianAdkins Yes primarily splitting costs by consumption.
    – Jay
    Commented May 28, 2013 at 2:19
  • @Sirex Could you provide any links on how that works?
    – Jay
    Commented May 28, 2013 at 2:20
  • 1
    Mmm so your device is the router. So, to measure the bandwith, you either have to make each machine count its outgoing traffic (hence you have to trust your roommates don't cheat) or put a box in front of the modem, could be an old recycled computer or a dedicated router; what are your thoughts? Commented May 28, 2013 at 5:23

2 Answers 2

0

I use NetWorx on my home network for bandwidth monitoring. It can log data directly from the router using SNMP or UPnP.

The caveat is that you need to keep your monitoring PC switched on and monitoring traffic 24/7 because the router resets its upload and download counters every 4 GB.

While this lets you know what your total bandwidth consumption is, it won't let you distinguish your data usage from your housemates' usage.

As @NevinWilliams mentioned in the comments, if you're not going to be using Wi-Fi, you can measure the traffic of individual network interfaces using SNMP. NetWorx can do that but you may need to run it on separate computers to monitor their individual LAN interfaces.

NetWorx monitor router LAN interface using SNMP

You could have each of your housemates install and run NetWorx to monitor their individual traffic, but this boils down to whether or not you trust them to diligently monitor their internet traffic and not cheat.

Alternatively, you can install DD-WRT on your router and set up a FreeRADIUS server to manage authentication and accounting. This is advanced stuff but you can find guides on the Internet and various forums and figure out how to do this.

If you'd rather not go through the trouble of setting all of that up, your best bet is to use a hotspot service like HotspotSystem to manage bandwidth. They have a few free plans but you're going to have to flash either DD-WRT or OpenWRT custom router firmware on a supported router.

0

You could connect a kind of "firewall" (or router) upstream of the router/modem.
This would work with any motherboard that has 3 network interfaces, or you could use a Raspberry Pi and buy two USB-RJ45 adapters.

(The Rasbperry Pi solution would be my favorite, as these devices require very little power in continuous operation)

You can install a normal Linux on the Raspberry Pi (the RPI imager is suitable for this)

When the Pi is running, simply set up forwarding rules using IP tables, e.g. that all traffic from interface A (your neighbor) and interface B (you) should be forwarded to interface C(where your router/modem is connected).

There are great Grafana projects for Raspberry Pis.

There you can visualize the bandwidth per network interface. To do this, you need to install Telegraf, InfluxDB and Grafana.

Don't worry, it all sounds terribly complicated, but in the end it's not at all (and it's also a bit of fun)

Another advantage would be that you could also implement a few security features in this way. For example, you could prohibit traffic from being routed from interface A (your neighbor) to interface B (you).

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .