There are many popular monitoring tools available in the market and we’ve analyzed the top 5 free network monitoring tools for Linux below:
Nload is a command line tool that allows users to monitor the incoming and outgoing traffic separately. It also draws out a graph to indicate the same, the scale of which can be adjusted. Easy and simple to use, and does not support many options.
So if you just need to take a quick look at the total bandwidth usage without details of individual processes, then nload will be handy.
Installing Nload – Fedora and Ubuntu have got it in the default repos. CentOS users need to get nload from Epel repositories.
# fedora or centos yum install nload -y # ubuntu/debian sudo apt-get install nload
Iftop measures the data flowing through individual socket connections, and it works in a manner that is different from Nload. Iftop uses the pcap library to capture the packets moving in and out of the network adapter, and then sums up the size and count to find the total bandwidth under use.
Although iftop reports the bandwidth used by individual connections, it cannot report the process name/id involved in the particular socket connection. But being based on the pcap library, iftop is able to filter the traffic and report bandwidth usage over selected host connections as specified by the filter.
The n option prevents iftop from resolving ip addresses to hostname, which causes additional network traffic of its own.
Install iftop – Ubuntu/Debian/Fedora users get it from default repos. CentOS users get it from Epel.
# fedora or centos yum install iftop -y # ubuntu or debian apt-get install iftop
Iptraf is an interactive and colorful IP Lan monitor. It shows individual connections and the amount of data flowing between the hosts. Here is a screenshot
# Centos (base repo) yum install iptraf # fedora or centos (with epel) yum install iptraf-ng -y # ubuntu or debian apt-get install iptraf iptraf-ng
Build from source :
For Centos/RHEL (7.3, 7.4)
yum install gcc tar git wget ncurses-devel ncurses make
For Ubuntu (16.04, 17.10, 18.04)
apt-get update apt-get install gcc tar git wget libncurses5-dev libncurses5 make
Download and extract IPTraf
cd /usr/local/src wget https://github.com/hobinyoon/iptraf-3.0.0/archive/master.zip unzip master.zip
Build and install IPTraf
cd /usr/local/src/iptraf-3.0.0-master cp /usr/include/netinet/if_tr.h /usr/include/linux/ ./Setup
Set PATH variable
Run IPTraf using the command below
/usr/local/bin/iptraf or iptraf
Bmon (Bandwidth Monitor) is a tool similar to nload that shows the traffic load over all the network interfaces on the system. The output also consists of a graph and a section with packet level details.
Install Bmon – Ubuntu, Debian and Fedora users can install from default repos. CentOS users need to setup repoforge, since its not available in Epel.
# ubuntu or debian apt-get install bmon # fedora or centos (from repoforge) yum install bmon
Bmon supports many options and is capable of producing reports in html format. Check the man page for more information
Vnstat is bit different from most of the other tools. It actually runs a background service/daemon and keeps recording the size of data transfer all the time. Next it can be used to generate a report of the history of network usage.
$ service vnstat status * vnStat daemon is running
Running vnstat without any options would simply show the total amount of data transfer that took place since the date the daemon is running.
Vnstat is more like a tool to get historic reports of how much bandwidth is used everyday or over the past month. It is not strictly a tool for monitoring the network in real time.
Vnstat supports many options, details about which can be found in the man page.
# ubuntu or debian apt-get install vnstat # fedora or centos (from epel) yum install vnstat
How to install EPEL repo on centos OS :
yum install epel-release