Linux and Unix nload App: Monitor Network Traffic and Bandwidth Usage In Real Time

Posted on in Categories Command Line Hacks, Debian Linux, Networking last updated May 7, 2017

If you want to monitor network throughput on the command line interface, use nload application. It is a console application which monitors network traffic and bandwidth usage in real time. It visualizes the in and outgoing traffic using two graphs and provides additional info like total amount of transferred data and min/max network usage.

You can install nload as per your Linux or Unix distro to monitor network traffic and bandwidth usage in real time on a Linux or Unix based system.

Install nload on a CentOS/RHEL/Red Hat/Fedora Linux

First, turn on EPEL repo on a CentOS or RHEL based system. Type the following yum command to install nload:
# yum install nload

Install nload on a Debian or Ubuntu Linux

Type the following apt-get command:
$ sudo apt-get install nload

Install nload on an Arch Linux

Type the following pacman command:
$ sudo pacman -S nload

Install nload on an OpenSuse Linux

Type the following zypper command:
# zypper install nload

Install nload on an Alpine Linux

Type the following apk command:
# apk add nload

Install nload on a FreeBSD system

To install the nload via port, type:
# cd /usr/ports/net/nload/ && make install clean
Or add the package
# pkg install net/nload

Install nload on a OpenBSD system

Type the following command:
$ sudo pkg_add -i nload

Install nload on a macOS Unix system

Type the following brew command:
$ brew install nload

Install nload using a source code on a Unix-like systems

First, grab the source code using either wget command or curl command:
$ cd /tmp
$ wget http://www.roland-riegel.de/nload/nload-0.7.4.tar.gz

To untar a tar file called nload-0.7.4.tar.gz, use tar command, enter:
$ tar xvf nload-0.7.4.tar.gz
Cd to the directory containing the nloads’s source code using cd command:
$ cd nload*
And type ./configure to configure the package for your system:
$ sh ./configure
OR
$ ./configure
Running configure takes a while. Type make command to compile the nload:
$ make
Finally, type make install to install the nload programs and related files as root user:
$ sudo make install
OR
# make install

How do I use nload to display the current network usage?

The basic syntax is:

nload
nload device
nload [options] device1 device2

Just type the following command:
$ nload
$ nload eth0
$ nload em0 em2

Sample outputs:

Fig. 01: nload command in action
Fig. 01: nload command in action

Controlling nload app

Once nload command executed, it begins to monitor the network devices. You can control nload with the following key shortcuts:

  1. You can switch between the devices by pressing the left and right arrow keys or Enter/Tab key.
  2. Press F2 to show the option window
  3. Press F5 to save current settings to the user’s config file.
  4. Press F6 reload settings from the config files.
  5. Press q or hit Ctrl+C to quit nload.

Setting the refresh interval of the display

The default value of interval is 100 milliseconds to refresh interval of the display. In this example, change to 500 milliseconds:
$ nload -t {interval_number_in_millisec}
$ nload -t 500

Sample outputs:

Animated gif 01 - nload command in action
Animated gif 01 - nload command in action

Setting the type of unit used for the display of traffic numbers

The syntax is:
$ nload -u h|H|b|B|k|K|m|M|g|G
$ nload -U h|H|b|B|k|K|m|M|g|G
$ nload -u h
$ nload -u G
$ nload -U G

Where,

  • The lower case -u option: h means human readable (auto), b Bit/s, k kBit/s, m MBit/s and g GBit/s. The upper case letters mean the corresponding units in Bytes (instead of Bits). The default is k.
  • The upper case -U option is same as lower case -u option, but for an amount of data, e.g. Bit, kByte, GBit etc. (without "/s"). The default is M.
Conclusion

I found nload to be reliable and stable application. If you enjoyed nload, you might also like to try out vnstat and iftop tools on Linux/Unix-like systems. See previous coverage on nixCraft:

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

22 comment

  1. Question regarding the # . | what is the difference between them. They must have some definition. Can’t seem to find it anywhere. Thanks.

  2. on CentOS the ./configure command doesn’t make the correct make file. I run make or make install and it says no targets specified. Any suggestions, please? :)

  3. Hi,
    I’m running Iperf TCP and some multicast video on my machine and when I run Nload instead of having something like 400Mbit/s I got 63.3Gbit/s which is impossible.
    Any Idea why ?
    Thank you cause this tools seems very nice and user friendly

  4. Is there is any way to track the outgoing traffic for specific user?
    or get the information about the user who’s on the high usage of outgoing traffic,

    It’s just to monitor the spam on server, like bulk mailing with scripts?

  5. If you want information on a per process level I’d suggest nethogs as another splendid application
    On Debian apt-get install nethogs

  6. how can i look for that information without use that app ? i means, in the native way. For example, the current incoming

  7. This doesn’t work, at all. No matter what device I tell it to look at, all I get is: “Device bridge0>^GTdM (1/10): does not exist” regardless of which device I tell it to focus on.

  8. is it possible to mention an ipv6 destination address using this tool ? I want to measure the bandwidth of the network between source and destination.

  9. Tried it with many systems, but I dont get the grafic. Its like nothing is happening. Someone know why ?

Comments are closed.