Analysis updated 2026-05-18
Find which process is suddenly consuming network bandwidth on a Linux server.
Install via apt, yum, or pacman for a quick per-process bandwidth view.
Grant setcap permissions so a non-root user can run bandwidth monitoring.
Build the libnethogs library to feed per-process bandwidth data into another program.
| raboof/nethogs | yue/yue | tildearrow/furnace | |
|---|---|---|---|
| Stars | 3,620 | 3,620 | 3,622 |
| Language | C++ | C++ | C++ |
| Setup difficulty | easy | moderate | easy |
| Complexity | 2/5 | 3/5 | 3/5 |
| Audience | ops devops | developer | general |
Figures from each repo's GitHub metadata at analysis time.
Most Linux distros package it directly, so a single package-manager install usually gets it running.
NetHogs is a command-line monitoring tool for Linux that answers a specific question: which running program is eating your network bandwidth right now? Most network monitoring tools break traffic down by protocol or by which machines are talking to each other. NetHogs takes a different approach and groups all network activity by the process that caused it, so you can immediately spot a program that has suddenly started sending or receiving unusually large amounts of data. The tool reads process information directly from the Linux kernel via the /proc filesystem. Because of this dependency, the full feature set is only available on Linux. You can build it on Mac OS X and FreeBSD, but on those systems it will only show raw connections without linking them to specific programs. Using it is straightforward. You install a couple of standard development libraries (ncurses for the terminal display and libpcap for packet capture), compile the code with a single make command, and run the resulting binary with administrator privileges. Most major Linux distributions already package it, so you can often just install it directly through apt, yum, or pacman rather than building from source. If you prefer not to run it as root every time, you can grant the binary specific capabilities using the setcap command. This allows a regular user to run NetHogs with just the permissions it actually needs, rather than full root access. The codebase also builds as a library called libnethogs, which lets other programs tap into the per-process bandwidth data. The README notes this is experimental and the interface is likely to change. There is also a list of related tools for users who want to monitor traffic from different angles, such as by host, by connection type, or with a graphical interface.
A command-line Linux tool that shows which running program is using your network bandwidth right now, grouped by process.
Mainly C++. The stack also includes C++, ncurses, libpcap.
You can redistribute and modify it, but derivative works must also be shared under the same GPLv2 or later license.
Setup difficulty is rated easy, with roughly 5min to a first successful run.
Mainly ops devops.
This repo across BitVibe Labs
Verify against the repo before relying on details.