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

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

Install nload on an OpenSuse Linux

Execute 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

First, install Homebrew on macOS and then 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
$ ./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
# make install

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

The basic syntax is:

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

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

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


  • 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.

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:

🐧 Get the latest tutorials on Linux, Open Source & DevOps via RSS feed or Weekly email newsletter.

🐧 22 comments so far... add one

CategoryList of Unix and Linux commands
Disk space analyzersncdu pydf
File Managementcat
FirewallAlpine Awall CentOS 8 OpenSUSE RHEL 8 Ubuntu 16.04 Ubuntu 18.04 Ubuntu 20.04
Network UtilitiesNetHogs dig host ip nmap
OpenVPNCentOS 7 CentOS 8 Debian 10 Debian 8/9 Ubuntu 18.04 Ubuntu 20.04
Package Managerapk apt
Processes Managementbg chroot cron disown fg jobs killall kill pidof pstree pwdx time
Searchinggrep whereis which
User Informationgroups id lastcomm last lid/libuser-lid logname members users whoami who w
WireGuard VPNAlpine CentOS 8 Debian 10 Firewall Ubuntu 20.04
22 comments… add one
  • RippaGun Mar 23, 2014 @ 13:52

    Nice one! Thanks, Cyberciti, you’re the best when it comes to introducing me to new apps.

  • Bochi Mar 23, 2014 @ 15:06

    I used to use slurm for that job, also a very good tool in my opinion.

  • Kailash Mar 24, 2014 @ 6:10

    Thanks Cyberciti! Really useful information to monitor the traffic directly from server.

  • Sahil Sehgal Mar 24, 2014 @ 8:14

    From a long time I have been using IFTOP to serve the purpose. Still loving that.

  • Crouchingtigger02 Mar 25, 2014 @ 12:53

    Simply beautiful !! Keep up the great work…..

  • nivil vk Apr 1, 2014 @ 6:45

    thank u cyber city … ineed more about the tool…..

  • nivil vk Apr 1, 2014 @ 6:52

    i need windows hosting security tips

  • Davide Apr 4, 2014 @ 14:26

    Very nice! Thank you!

  • J4mb4l4j4 Apr 6, 2014 @ 8:19

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

  • mddnix Jul 8, 2014 @ 13:31

    Great! Thanks

  • Thyago Sampaio Jul 16, 2014 @ 19:12

    suport virtual device? ex: eth0:0

  • ann Jul 19, 2014 @ 15:38

    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.

  • Ken Winfield Jul 20, 2014 @ 6:43

    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.

  • Jorge Santana Jul 28, 2014 @ 17:00

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

  • Perry Randall Aug 23, 2014 @ 5:26

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

  • Khawar Latif Dec 2, 2014 @ 9:35

    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?

  • eraclitux Jan 7, 2015 @ 14:39

    Great tool. Sometimes one needs to read relevant network data remotly, I wrote rim for this purpose maybe it can be useful for someone http://www.eraclitux.com/posts/remote-network-interfaces-monitoring.html

  • Cedric Feb 25, 2015 @ 10:34

    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

  • TheRandai Mar 12, 2015 @ 14:47

    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? :)

  • Daniel Nov 8, 2016 @ 16:04

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

  • DrLightman Mar 9, 2017 @ 13:42

    To what refers “Ttl” in outgoing traffic?

Leave a Reply

Your email address will not be published.

Use HTML <pre>...</pre> for code samples. Still have questions? Post it on our forum