Are you having problems monitoring your Linux network bandwidth usage? Do you need help? It’s important that you are able to visualize what is happening in your network in order to understand and resolve whatever is causing network slowness or simply to keep an eye on your network.
In this article, we will review 16 useful bandwidth monitoring tools to analyze network usage on a Linux system.
If you are looking to manage, troubleshoot or debug your Network, then read our article – A Linux Sysadmin’s Guide to Network Management, Troubleshooting and Debugging
The tools listed below are all open source and can help you to answer questions such as “why is the network so slow today?”. This article includes a mix of small tools for monitoring bandwidth on a single Linux machine and complete monitoring solutions capable of handling a few number of hosts on a LAN (Local Area Network) to multiple host even on a WAN (Wide Area Network).
ManageEngine Netflow Analyzer
ManageEngine NetFlow Analyzer is a flow-based bandwidth monitoring solution that offers multi-vendor support. It monitors your network, analyzes traffic patterns, and detects and diagnoses bandwidth hogs.
You can track the traffic patterns in your network over any period of time, and drill down further into the device, interface, application, and user-level details. With its traffic shaping abilities, NetFlow Analyzer helps you identify network anomalies in real-time and troubleshoot them before they affect your end-users.
With its customizable reports, NetFlow Analyzer also helps you predict and plan your bandwidth requirements. You can create, schedule, and generate comprehensive bandwidth analysis reports in just a few clicks.
1. vnStat – A Network Traffic Monitor
VnStat is a fully-featured, command line-based program to monitor Linux network traffic and bandwidth utilization in real-time, on Linux and BSD systems.
One advantage it has over similar tool is that it logs network traffic and bandwidth usage statistics for later analysis – this is its default behavior. You can actually view these logs even after system reboots.
Install VnStat in Linux
# yum install epel-release [On RHEL/CentOS] # yum install vnstat # apt install vnstat [On Debian/Ubuntu]
2. iftop – Displays Bandwidth Usage
iftop is a simple, easy to use, real time top-like command line based network bandwidth monitoring tool, used to get a quick overview of network activities on an interface. It displays network usage bandwidth updates every 2, 10 and 40 seconds on average.
Install iftop in Linux
# yum install epel-release [On RHEL/CentOS] # yum install iftop # apt install iftop [On Debian/Ubuntu]
3. nload – Displays Network Usage
nload is a another simple, easy to use command-line tool for monitoring network traffic and bandwidth usage in real time. It uses graphs to help you monitor inbound and outbound traffic. In addition, it also displays information such as the total amount of transfered data and min/max network usage.
Install nload in Linux
# yum install epel-release [On RHEL/CentOS] # yum install nload # apt install nload [On Debian/Ubuntu]
4. NetHogs – Monitor Network Traffic Bandwidth
NetHogs is a tiny top-like, text-based tool to monitor real time network traffic bandwidth usage by each process or application running on a Linux system. It simply offers real time statistics of your network bandwidth usage on a per-process basis.
Install NetHogs in Linux
# yum install epel-release [On RHEL/CentOS] # yum install nethogs # apt install nethogs [On Debian/Ubuntu]
5. bmon – Bandwidth Monitor and Rate Estimator
bmon is also a straightforward command line tool for monitoring network bandwidth utilization and a rate estimator, in Linux. It captures network statistics and visualizes them in a human friendly format so that you can keep an eye on your system.
Install Bmon in Linux
# yum install epel-release [On RHEL/CentOS] # yum install bmon # apt install bmon [On Debian/Ubuntu]
6. Darkstat – Captures Network Traffic
Darkstat is a small, simple, cross-platform, real-time, efficient web-based network traffic analyzer. It is a network statistics monitoring tool that works by capturing network traffic, computes usage statistics, and serves the reports over HTTP in a graphical format. You can also use it via the command line to get the same results.
Install Darkstat in Linux
# yum install epel-release [On RHEL/CentOS] # yum install darkstat # apt install darkstat [On Debian/Ubuntu]
7. IPTraf – An IP Network Monitor
IPTraf is an easy to use, ncurses-based and configurable tool for monitoring incoming and outgoing network traffic passing through an interface. It is useful for IP traffic monitoring, and viewing general interface statistics, detailed interface statistics and so much more.
Install IPTraf in Linux
# yum install epel-release [On RHEL/CentOS] # yum install iptraf # apt install iptraf [On Debian/Ubuntu]
8. CBM – (Color Bandwidth Meter)
CBM is a tiny command line utility for displaying current network traffic on all connected devices in colored output in Ubuntu Linux and its derivatives such as Linux Mint, Lubuntu and many others. It shows each connected network interface, bytes received, bytes transmitted and total bytes, allowing you to monitor network bandwidth.
Install Color Bandwidth Meter in Linux
# yum install epel-release [On RHEL/CentOS] # yum install cbm # apt install cbm [On Debian/Ubuntu]
9. Iperf/Iperf3 – Network Bandwidth Measurement Tool
Iperf/Iperf3 is a powerful tool for measuring network throughput over protocols such as TCP, UDP and SCTP. It is primarily built to help in tuning TCP connections over a particular path, thus useful for testing and monitoring the maximum achievable bandwidth on IP networks (supports both IPv4 and IPv6). It requires a server and a client to perform tests (which reports the bandwidth, loss, and other useful network performance parameters).
Install Iperf3 in Linux
# yum install epel-release [On RHEL/CentOS] # yum install iperf3 # apt install iperf3 [On Debian/Ubuntu]
10. Netperf – Network Bandwidth Testing
Netperf is similar to iperf, for testing network performance. It can help in monitoring network bandwidth in Linux by measuring data transfer using either TCP, UDP. It also supports measurements via Berkeley Sockets interface, DLPI, Unix Domain Sockets and so many other interfaces. You need a server and a client to run tests.
For installation instruction, check out project github page.
11. SARG – Squid Analysis Report Generator
SARG is a squid log files analyzer and internet bandwidth monitoring tool. It produces useful HTML reports with information including but not limited to IP addresses, and total bandwidth usage. It is a handy tool for monitoring internet bandwidth utilization by individual machines on a single network.
For installation instruction and usage, check out our article – How to Install SARG to Monitor Squid Internet Bandwidth Usage.
12. Monitorix – System and Network Monitoring Tool
Monitorix is a lightweight system resources and network monitoring application, designed for small Linux/Unix servers and also comes with amazing support for embedded devices.
It helps you monitor network traffic and usage statistics from unlimited number of network devices. It supports IPv4 and IPv6 connections, includes packet traffic and traffic error graphs, and supports up to 9 qdiscs per network interface.
Install Monitorix in Linux
# yum install epel-release [On RHEL/CentOS] # yum install monitorix # apt install monitorix [On Debian/Ubuntu]
13. Cacti – Network Monitoring and Graphing Tool
Cacti is a fully functional, web based network graphing PHP application with an intuitive, easy to use interface. It uses MySQL database for storing data collected network performance data, used to produce customized graphing. It is a frontend to RRDTool, useful for monitoring small to complex networks with thousands of devices.
For installation instruction and usage, check out our article – How to Install Cacti – A Network Monitoring and Graphing Tool.
14. Observium – Network Monitoring Platform
Observium is a fully-featured network monitoring platform with an elegant and powerful, robust yet simple and intuitive interface. It supports a number of platforms including, Linux, Windows, FreeBSD, Cisco, HP, Dell and many others, and includes autodetection of devices. It helps users to gather network metrics and offers intuitive graphing of device metrics from collected performance data.
For installation instruction and usage, check out our article – How to Install Observium – A Complete Network Management and Monitoring System.
15. Zabbix – Application and Network Monitoring Tool
Zabbix is a feature-rich, commonly used network monitoring platform, designed in a server-client model, to monitor networks, servers and applications in real time. It collects different types of data that are used for visual representation network performance or load metrics of the monitored devices.
It is capable of working with well known networking protocols such as HTTP, FTP, SMTP, IMAP and many more, without the need to install additional software on the monitored devices.
For installation instruction and usage, check out our article – How to Install Zabbix – A Complete Network Monitoring Solution for Linux.
16. Nagios – Monitors Systems, Networks and Infrastructure
Nagios is a robust, powerful, feature-rich and widely used monitoring software. It allows you to monitor local and remote network devices and their services from a single window.
It offers bandwidth monitoring in network devices such as switches and Routers via SNMP thus enabling you to easily find out over utilized ports, and pin point possible network abusers.
In addition, Nagios also helps you to keep an eye on per-port bandwidth utilization and errors, and supports fast detection of network outages and protocol failures.
For installation instruction and usage, check out our article – How to Install Nagios – A Complete IT Infrastructure Monitoring Solution for Linux.
In this article, we have reviewed a number of useful network bandwidth and system monitoring tools for Linux. If we’ve missed to include any monitoring tool in the list, do share with us in the comment form below.