NetHogs: Groups Processes by their Network Bandwidth Usage (Ubuntu Linux)

If all of a sudden, your network slows down and you ‘know’ that the hardware devices are working fine, then there’s a good chance that it’s caused by software. It could simply be the download manager occupying most of your network’s bandwidth, or the operating system downloading its daily updates etc.

So under those circumstance, having the ability to know which programs are using the most of your network’s bandwidth is pretty useful. If this happens to you while using GNU/Linux (I’m using Ubuntu), then there’s a simple tool called ‘NetHogs’ that shows you processes/applications and their network usage in real-time, might be able to help you out.

It outputs details such as the speed a particular application is accessing your network (both upload and download speeds), the network interface it’s using, user ID, process ID etc so you can quickly find the sucker that’s eating your bandwidth ;-).

‘Top’ ones are at the top …

Then you can properly close or, if you suspect an application is misbehaving, then you can kill it by using the information that ‘NetHogs’ gives you as well.

You can install ‘NetHogs’ in Ubuntu 12.10 Quantal Quetzal, 12.04 Precise Pangolin, 11.10 Oneiric Ocelot, 11.04, 10.10 and 10.04 by entering the below command in your Terminal window.

sudo apt-get install nethogs

How to use it?

As you can see from the first screenshot, it’s a command-line based utility, but using it is pretty easy. For monitoring a certain network interface (device), please use it in the below format (you’ll need ‘sudo’ privileges for running it though).

sudo nethogs network-interface

Replace ‘network-interface’ with the interface ID of your network. For closing the utility, press ‘q’.

If you want to speed up the update intervals, then use it in the below format.

sudo nethogs -d 1 network-interface

Again change both ‘network-interface’ and ‘1’ with the number of seconds that you want it to update the data.

Few examples …

If you use a network card, then you should use ‘eth0’ or if you use a Wi-Fi adapter, then use ‘wlan0’. For instance, since I have a Wi-Fi based network connection, for getting a list of applications that consume most of my network’s bandwidth, I’ll use the below command.

sudo nethogs wlan0

For updating those details once every second, I’ll use the below one instead.

sudo nethogs -d 1 wlan0

It has few other options, for that please refer to its manual by using the below command.

man nethogs

Another feature of ‘NetHogs’ is that, when the data flow is zero, it’ll still display applications based on their network bandwidth usage, when they were last active.

Well, that’s pretty much it. Enjoy!.

An RHCE, 'Linux' user with 14+ years of experience. Extreme lover of Linux and FOSS. He is passionate to test every Linux distribution & compare with the previous release to write in-depth articles to help the FOSS community.

1 thought on “NetHogs: Groups Processes by their Network Bandwidth Usage (Ubuntu Linux)”

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.