Home Downloads Harnessing bnom for advanced network bandwidth management

Harnessing bnom for advanced network bandwidth management

Bnom stands out as a powerful tool for monitoring network bandwidth. This guide introduces you to bnom's features, setup, and usage, providing insights into how it can help you effectively monitor and manage network traffic and performance, ensuring optimal utilization of your network resources.

by Arun Kumar
bnom bandwidth monitoring

Welcome, network enthusiasts and administrators! Today, we’re diving into the world of network monitoring, focusing on a handy tool that I’ve grown quite fond of – Bmon (Bandwidth Monitor). This lightweight, yet powerful tool has been one of my go-to tools for real-time bandwidth monitoring and troubleshooting. Let’s explore what makes Bmon a must-have in your networking toolkit.

Understanding Bmon

What is Bmon?

Bmon is a versatile network bandwidth monitoring and debugging tool. It’s designed for various Unix and Unix-like systems, including Linux. What I particularly love about Bmon is its simplicity and lightweight nature, making it perfect for both older systems and modern servers.

Why choose Bmon over modern network monitoring tools?

In the realm of network monitoring, Bmon holds its ground against modern tools due to its simplicity, efficiency, and ease of use. Its appeal lies in the quick setup and user-friendly interface, making it accessible for both beginners and experts. Bmon is notably lightweight, ensuring minimal impact on system resources, which is particularly beneficial for older or less powerful systems.

Its real-time monitoring capability provides immediate insights, crucial for on-the-spot troubleshooting. Additionally, Bmon’s flexibility is evident in its cross-platform compatibility and customizable outputs, catering to various user needs. This focused approach, ideal for monitoring specific interfaces or servers, makes Bmon a practical choice in scenarios where larger, more complex monitoring systems might be excessive.

Key features of Bmon

  • Real-time monitoring: Bmon displays live network traffic data.
  • Various output formats: Supports text, curses-based output, and HTML.
  • Flexible: Works well with all types of network interfaces.
  • Portable: Runs on most Unix-like operating systems.

Let me explain about each of these features in detail.

Real-time monitoring

  • Instantaneous data: Bmon excels at providing real-time insights into network traffic. It updates its display at regular intervals, allowing you to see the live status of network bandwidth usage.
  • Interface-specific details: It shows data for each network interface separately. This is particularly useful when you’re dealing with multiple interfaces and need to pinpoint which one is experiencing high traffic or issues.

Various output formats

  • Text and curses-based output: This is the default mode where data is displayed in a terminal window. The ‘curses’ library used by Bmon provides a text-based graphical interface, making the data easy to read and interpret.
  • HTML output: For those who prefer a web-based view or need to integrate the data into a web page, Bmon can output its data in HTML format. This is useful for remote monitoring or sharing data with team members who may not have direct access to the command line.


  • Compatibility with all network interfaces: Bmon isn’t limited to just Ethernet or Wi-Fi interfaces. It can handle various types of network interfaces, including modern virtual interfaces and even VPN connections.
  • Adaptability: It adapts to the available data, meaning it will provide as much information as the system can offer about each interface. This makes it a versatile tool regardless of the network environment you’re working in.


  • Cross-platform support: One of Bmon’s strengths is its compatibility with a wide range of Unix and Unix-like systems, including Linux, FreeBSD, and others. This makes it a go-to tool for network administrators who work in diverse computing environments.
  • Minimal dependencies: Bmon doesn’t require a lot of external libraries or a heavy runtime environment, which contributes to its portability. It can be easily installed and run on both older and newer systems without significant resource overhead.

My feedback

From my experience, these features collectively make Bmon not just a monitoring tool, but a versatile companion for network diagnostics and analysis. Whether you’re troubleshooting a network issue, keeping an eye on bandwidth usage, or just curious about the performance of your network interfaces, Bmon provides the essential data in a straightforward and accessible manner. The real charm of Bmon lies in its simplicity and the immediate value it offers right after installation, without the need for extensive configuration.

Getting started with Bmon


Bmon is available in the repositories of most Linux distributions. For Debian-based systems, you can install it using:

sudo apt-get install bmon

For Red Hat-based systems:

sudo yum install bmon

Basic syntax

The basic syntax of Bmon is straightforward:

bmon [OPTION]...


-i, –input=MODPARM Input module(s)
-o, –output=MODPARM Output module(s)
-f, –configfile=PATH Alternative path to configuration file
-h, –help Show this help text
-V, –version Show version

-p, –policy=POLICY Element display policy (see below)
-a, –show-all Show all elements (even disabled elements)
-r, –read-interval=FLOAT Read interval in seconds (float)
-R, –rate-interval=FLOAT Rate interval in seconds (float)
-s, –sleep-interval=FLOAT Sleep time in seconds (float)
-L, –lifetime=LIFETIME Lifetime of an element in seconds (float)

-U, –use-si Use SI units
-b, –use-bit Display in bits instead of bytes

Module configuration:
modparm := MODULE:optlist,MODULE:optlist,…
optlist := option;option;…
option := TYPE[=VALUE]

-o curses:ngraph=2
-o list # Shows a list of available modules
-o curses:help # Shows a help text for html module

Interface selection:
policy := [!]simple_regexp,[!]simple_regexp,…

Example: -p ‘eth*,lo*,!eth1’

Advanced features of Bmon

Customizing output formats

  • HTML output example: When you run bmon -o html, Bmon generates an HTML-formatted output. This can be useful for integrating into web pages. Here’s a simplified example of what the output might look like:
    <head><title>Bmon Output</title></head>
      <h1>Network Interface: eth0</h1>
      <p>Upload: 100 Mbps</p>
      <p>Download: 50 Mbps</p>

Filtering interfaces

  • Selective monitoring example: If you run bmon -p eth0,wlan0, Bmon will monitor only the eth0 and wlan0 interfaces. The output will focus only on these two, like so:
    | eth0                               100 Mbps ↑     50 Mbps ↓                    |
    | wlan0                              20 Mbps ↑      10 Mbps ↓                    |

Adjustable display update interval

  • Custom interval example: By setting bmon -i 2, the data refreshes every 2 seconds. While there’s no visual change in the output format, the numbers update more frequently, providing a near real-time monitoring experience.

Detailed statistics

  • In-depth data example: Bmon can show detailed statistics like packet counts, error rates, etc. For instance:
    | Interface: eth0                                                                |
    | Upload: 100 Mbps | Packets: 200/s | Errors: 0                                   |
    | Download: 50 Mbps | Packets: 100/s | Errors: 1                                  |

Exporting data

  • Data export example: Although Bmon itself doesn’t directly save output to a file, you can redirect its output to a file for later analysis. For example, running bmon -o ascii > bmon_output.txt will save the ASCII output to bmon_output.txt. The file will contain a snapshot of the Bmon output at the time of the command, like:
    Interface: eth0
    Upload: 100 Mbps
    Download: 50 Mbps

My experience with Bmon

What I love

  • Simplicity: Bmon is incredibly easy to use.
  • BNOM is very lightweight and easy to install and configure. It does not require a lot of system resources, and it can be up and running in minutes. This can be a major advantage for organizations that have limited IT resources.
  • Versatility: I’ve used it on various systems with consistent reliability.

What could be better

  • Limited historical data: Bmon is great for real-time data but lacks historical data analysis.
  • Basic user interface: If you prefer GUI tools, Bmon’s text-based interface might seem too basic.
  • BNOM is not as actively developed as other bandwidth monitoring tools. This means that it may not have all of the latest features, and it may be more prone to bugs.
  • BNOM is not as widely supported as other bandwidth monitoring tools. This means that it may be more difficult to find troubleshooting help if you encounter problems.

Practical examples

Here are three real-world scenarios where Bmon can be particularly useful. For each scenario, I’ll provide the input command you would use and an example of the output you might see.

1. Monitoring specific network interface in real-time

Scenario: Suppose you’re a network administrator who needs to monitor the bandwidth usage of the primary Ethernet interface, eth0, in real-time on a busy server.

Input command:

bmon -p eth0

Example Output:

| eth0                               120 Mbps ↑     85 Mbps ↓                    |

In this output, eth0 is showing an upload speed of 120 Mbps and a download speed of 85 Mbps.

2. Checking bandwidth usage on all interfaces with detailed statistics

Scenario: You’re troubleshooting a network issue and need to check the bandwidth usage across all network interfaces, along with detailed statistics like packet counts and errors.

Input command:

bmon -o ascii

Example output:

| Interface: eth0                                                                |
| Upload: 95 Mbps | Packets: 150/s | Errors: 2                                    |
| Download: 110 Mbps | Packets: 170/s | Errors: 1                                 |
| Interface: wlan0                                                               |
| Upload: 20 Mbps | Packets: 40/s | Errors: 0                                    |
| Download: 30 Mbps | Packets: 60/s | Errors: 0                                  |

This output provides a detailed view of both eth0 and wlan0, including packet and error information, which is crucial for diagnosing network issues.

3. Monitoring and exporting data for later analysis

Scenario: You need to monitor the network load over an extended period and save this data for later analysis. This is common in capacity planning or post-event analysis scenarios.

Input command:

bmon -o ascii > network_data.txt

Example output in network_data.txt:

Interface: eth0
Upload: 80 Mbps
Download: 65 Mbps

Interface: wlan0
Upload: 15 Mbps
Download: 20 Mbps

By redirecting the output to a file (network_data.txt), you collect the data over the time period during which Bmon is running. This data can later be analyzed to understand usage patterns or diagnose issues that occur intermittently.

Frequently Asked Questions about Bmon

Q1: Is Bmon suitable for large-scale networks?

Answer: Bmon is excellent for real-time monitoring on individual systems and can handle multiple interfaces. However, for large-scale networks spanning multiple devices or locations, a more comprehensive network management solution might be more appropriate. Bmon excels in simplicity and immediate data visualization but doesn’t inherently aggregate data from multiple sources.

Q2: Can Bmon monitor network traffic content?

Answer: No, Bmon is designed to monitor bandwidth usage, not the content of the network traffic. If you need to analyze traffic content, you would require a packet analyzer or a similar tool.

Q3: How does Bmon differ from other bandwidth monitoring tools?

Answer: Bmon stands out due to its simplicity, lightweight nature, and ease of use. It’s designed to provide quick, real-time insights into bandwidth usage without the need for complex configuration. Other tools might offer more detailed analysis but at the cost of higher complexity and resource usage.

Q4: Can Bmon be used on a headless server?

Answer: Yes, Bmon can be used on headless servers. Its text-based interface is well-suited for such environments, and its data can be exported or viewed remotely if needed.

Q5: Does Bmon support logging or historical data analysis?

Answer: Bmon primarily focuses on real-time data monitoring. While it doesn’t have built-in logging or historical data analysis features, you can redirect its output to a file for basic logging purposes. For extensive historical analysis, additional tools or scripts would be required to process and analyze these logs.

Q6: Is there a way to view Bmon data remotely?

Answer: While Bmon doesn’t have built-in remote access capabilities, you can run it on a remote machine and view the output via SSH. Alternatively, using the HTML output feature allows you to integrate the data into a web page, which can be accessed remotely.

Q7: How resource-intensive is Bmon?

Answer: Bmon is designed to be lightweight and minimally resource-intensive. It’s suitable for running on a wide range of systems, from powerful servers to less capable devices, without significant impact on system performance.

Q8: Are there any graphical interfaces available for Bmon?

Answer: Bmon itself is a text-based tool and doesn’t offer a graphical interface. However, its HTML output can be used to create graphical representations of the data, or you can use other tools to graphically represent the data exported by Bmon.

Q9: Can Bmon monitor wireless network interfaces?

Answer: Yes, Bmon can monitor wireless network interfaces just as effectively as wired ones. It treats all network interfaces similarly, providing bandwidth usage data regardless of the type of connection.

Q10: Is Bmon available for all Linux distributions?

Answer: Bmon is available in the repositories of most major Linux distributions. In the rare case it’s not included in your distribution’s default repository, you can compile it from the source available on its GitHub repository.


Bmon stands out as a highly efficient and user-friendly tool for network bandwidth monitoring. Its versatility in handling various network interfaces, including wireless connections, combined with the simplicity of its text-based interface, makes it an ideal choice for both beginners and seasoned professionals. While it may not be suitable for large-scale network monitoring or detailed content analysis, its strength lies in providing real-time data insights with minimal system impact.

The ability to customize outputs, filter interfaces, and adjust update intervals adds to its practicality. Even though it lacks built-in historical data analysis, its capability to export data offers a workaround for logging and later examination. Bmon’s suitability for a wide range of Linux distributions and environments, including headless servers, further underscores its utility as a valuable tool in any network administrator’s toolkit.

You may also like

Leave a Comment



FOSS Linux is a leading resource for Linux enthusiasts and professionals alike. With a focus on providing the best Linux tutorials, open-source apps, news, and reviews written by team of expert authors. FOSS Linux is the go-to source for all things Linux.

Whether you’re a beginner or an experienced user, FOSS Linux has something for everyone.

Follow Us


©2016-2023 FOSS LINUX



“Linux” is the registered trademark by Linus Torvalds in the U.S. and other countries.