For the past several years, I have been using a simple software bandwidth monitor on my computer to keep track of my monthly bandwidth usage. It has worked fine (more or less; the numbers are slightly off from my ISP’s online tracker).

This works fine for a single computer, but when my mother connects her laptop to my router or if I use second computer, then monitor and managing bandwidth becomes much more difficult.

I considered running a bandwidth monitoring software on each system that is to connected and (somehow) transferring the logs to a central system to (again somehow) be incorporated into a central log file, but not surprisingly, this is a nightmare at best.

I also thought about a router solution (as has been mentioned, but it would need to be easy to use and customize).

Is there an easy way to monitor and log total bandwidth usage (ie from multiple systems)? It should not require all the systems to be monitored to be on at any specific time, nor having all systems connect through another one (i.e., they should be able to connect directly to the Internet connection).

Also, it should be able to differentiate between local and remote traffic so that transferring files between two local systems does not count towards Internet bandwidth usage.


4 Answers 4


If you aren't against buying hardware -- you could purchase a DD-WRT compatable router (Such as a Linksys WRT54GL) and install the Gargoyle Router firmware which can do per-ip monitoring internally, and would not be reliant on any one PC being online and available. If you don't care about per-ip, DD-WRT or Tomato firmware can both do total usage, and even cap your usage for you so you dotn get overbilled.

If you have a SNMP enabled switch and a PC that is on all the time you could log bandwidth usage per switch port with something such as Cacti (or RRDTool)

If you have a spare PC around, IPTables as a router + RRDTool can provide bandwidth logs.

  • No extra computers, but I would be open to a new router if it were inexpensive. I’ll take a look around to see if there are any deals on that router.
    – Synetech
    Aug 15, 2009 at 12:47

Router is probably Best:
What router? lots of home-level routers can do this. If you get WRT54GL (make sure to get the L version), you can install an alternate firmware such as DD-WRT which can log this. The router makes the most sense.

Could Use Mirror Port:
Another option would be to set up a mirror port on the switch portion and sniff the traffic with a tool such as ntop on one of the machines, this is probably more effort than it is worth.

I don't know dumeter, but maybe put it on both and just add them up at the end of the month? :-)

  • My router is an older D-Link, so I don’t believe it has that (although it has other, more basic logging and stats functions). Actually, I had considered something like your add-it-up solution. I thought of having a script run on my mother’s machine that would periodically send the usage info to my system where it would add it to the total. I don’t mind cobbling together such a system, but I have my fingers crossed that there may be an existing solution.
    – Synetech
    Aug 15, 2009 at 12:46

Another solution is to build a Linux (or Linux/BSD based) router PC with two NICs to filter your traffic through. The bootable routers usually have tools available to graph your traffic usage along with good firewall configuration and some of them even do traffic throttling and QoS type functions.

  • Thanks, but I can’t make a system that is always on (electricity isn’t cheap enough for that).
    – Synetech
    Aug 15, 2009 at 12:43

I assume that you are building a Windows machine, but if you consider Ubuntu, then you could use vnstat to keep track of bandwidth. I run it on my server and occasionally like to know what my bandwidth usage is.

It will display hourly, daily, weekly, monthly....and even monitor in real time.

Its CLI, but very, very easy to use.

  • Yes, I am building a Windows system. Sorry.
    – Synetech
    Aug 15, 2009 at 12:40

You must log in to answer this question.

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