Bmon is a lightweight bandwidth monitoring tool that displays real-time network statistics across all your system interfaces. Whether you need to track interface throughput during a file transfer, diagnose which network adapter is experiencing congestion, or compare traffic patterns between multiple connections, Bmon provides the visibility you need. By the end of this guide, you will have Bmon installed and running on Ubuntu, with practical examples for monitoring, filtering by interface, and customizing output formats.
Update Ubuntu Before Installing Bmon
Before installing new software, first update your Ubuntu system to ensure all packages are current. This step prevents dependency conflicts and ensures you receive the latest security patches. Run the following command in your terminal:
sudo apt update && sudo apt upgrade
This command refreshes your package list and upgrades all installed packages to their latest versions.
Install Bmon on Ubuntu Using APT
Bmon is available in Ubuntu’s default repositories, which makes installation straightforward. Run the following command to install Bmon using the APT package manager:
sudo apt install bmon
After installation completes, verify that Bmon is accessible by checking its version:
bmon -V
bmon 4.0
Example Bmon Commands
Run Bmon for Network Traffic Monitoring
To start monitoring network traffic on your Ubuntu system, simply run Bmon without any arguments:
bmon
This command launches the interactive Bmon interface, presenting real-time network usage data across all interfaces. You can navigate between interfaces using the arrow keys and toggle detailed statistics with the d key.

Filter Results by Interface
If you want to focus on a specific network interface, use the -p option followed by a pattern matching the interface name. For example, to monitor only the eth0 interface:
bmon -p eth0
This command filters the display to show network usage statistics exclusively for the eth0 interface. You can also use wildcards, such as bmon -p 'eth*' to monitor all Ethernet interfaces, or bmon -p 'eth*,lo' to monitor multiple patterns.
Display Output in Bits Instead of Bytes
By default, Bmon displays network throughput in bytes per second. If you prefer to view speeds in bits per second (common for matching your ISP’s advertised speeds), use the -b flag:
bmon -b
This command switches all throughput values to bits per second. Additionally, you can combine this with the -U flag to use SI units (1000-based) instead of binary units (1024-based):
bmon -b -U
Adjust Read and Rate Intervals
Bmon allows you to customize how frequently it samples network data. The -r option sets the read interval (how often data is collected), while -R sets the rate interval (the time window used to calculate throughput rates):
bmon -r 0.5 -R 2.0
This example reads data every 0.5 seconds and calculates rates based on a 2-second window, which produces smoother graphs but slightly delayed readings.
Output Statistics to Terminal for Scripts
For monitoring scripts or log collection, Bmon can output detailed interface statistics to the terminal instead of the interactive curses interface. Use the ASCII output module with the details diagram:
bmon -p eth0 -o 'ascii:diagram=details;quitafter=1'
Interfaces eth0 (2) Bytes 872B 126B Packets 10 3 Dropped 0 0 Errors 0 0 Collisions 0 0
The quitafter=1 option makes Bmon print one snapshot and exit, which is ideal for cron jobs or monitoring scripts. You can also use diagram=graph for ASCII-art traffic graphs.
Exit Bmon
To terminate the Bmon session, simply press q or use Ctrl+C. Either action safely exits the program and returns you to the terminal prompt.
Troubleshooting Bmon
No Interfaces Displayed
If Bmon starts but shows no network interfaces, verify that your network drivers are loaded and interfaces are recognized by the system:
ip link show
1: lo:mtu 65536 qdisc noqueue state UNKNOWN 2: eth0: mtu 1500 qdisc fq_codel state UP
If interfaces appear in the output above but not in Bmon, try running Bmon with the -a flag to show all interfaces, including those marked as disabled:
bmon -a
Interface Names Have Changed
Modern Ubuntu systems use predictable network interface names (like enp0s3 or ens33) instead of traditional names like eth0. If the examples in this guide use eth0 but your system uses different names, adapt the commands accordingly:
bmon -p enp0s3
Manage Bmon
Update Bmon
Since Bmon is installed from Ubuntu’s default repositories, it receives updates through the standard APT upgrade process. To update Bmon specifically, run:
sudo apt update && sudo apt install --only-upgrade bmon
Remove Bmon
To uninstall Bmon from your Ubuntu system, run the following commands to remove the package and any orphaned dependencies:
sudo apt remove bmon
sudo apt autoremove -y
These commands remove Bmon and clean up any packages that were installed as dependencies but are no longer needed. To verify the removal succeeded, check that the bmon command is no longer available:
which bmon || echo "bmon has been removed"
bmon has been removed
Conclusion
You now have Bmon installed and configured for real-time bandwidth monitoring on Ubuntu. The commands covered in this guide enable you to filter traffic by interface, adjust sampling rates for smoother graphs, and display throughput in bits or bytes depending on your preference. For more comprehensive system monitoring, consider complementing Bmon with htop for process monitoring on Ubuntu or nmon for combined system and network statistics.