Linux has this funny problem.

There are too many tools.

You search for something simple like “how to monitor network usage on Linux” and suddenly people throw 40 utilities at you like you are building a data center in your kitchen.

I do not need that.

Most of the time I just want to know a few basic things:

  • Is my internet actually working?
  • Which app is eating my bandwidth?
  • Is my Wi-Fi signal trash?
  • How much traffic did this machine use today?
  • Is my old laptop still doing fine or slowly dying in silence?

So this is not a “complete list of every Linux networking tool ever made”.

This is the useful list.

The kind of stuff I would actually install on a normal Linux laptop, especially on something like MX Linux, Debian, Ubuntu, or an old MacBook revived with Linux.

Fastfetch: because the terminal needs some personality

Let’s start with the most important useless utility.

fastfetch.

Yes, technically it does not monitor your network. It does not fix anything. It does not debug packets. It does not make your Linux machine faster.

But it looks good.

And sometimes that is enough.

Fastfetch shows your system information in the terminal: distro, kernel, desktop environment, CPU, GPU, memory, disk, uptime, shell, resolution, and all that nice nerd stuff.

It is basically the modern replacement for neofetch.

Install it:

sudo apt install fastfetch

Run it:

fastfetch

I would not recommend forcing it to run every time you open the terminal. That sounds cool for two days and then becomes annoying.

Better make an alias:

echo "alias ff='fastfetch'" >> ~/.bashrc
source ~/.bashrc

Now you can just type:

ff

Small thing, but it makes your Linux setup feel more yours.

btop: the best terminal system monitor

If you install only one system monitor, install btop.

It shows CPU, RAM, disks, processes, temperatures if available, and network activity. It looks clean, works fast, and is actually pleasant to use.

Install it:

sudo apt install btop

Run it:

btop

This is one of those tools that makes Linux feel powerful without making it feel ancient.

I still like htop, but btop is better for daily use.

htop: still useful, still classic

htop is the classic process viewer.

It is not as pretty as btop, but it is everywhere, lightweight, and easy to understand.

Install it:

sudo apt install htop

Run it:

htop

If you are on some minimal system, server, old laptop, or rescue environment, htop is still great.

It is boring in a good way.

nethogs: find the app eating your internet

This one is very useful.

nethogs shows network usage by process.

Not just “your machine is using 2 MB/s”.

It tells you which process is doing it.

Firefox? Telegram? Docker? Some random updater? A suspicious process you forgot about?

Install it:

sudo apt install nethogs

Run it:

sudo nethogs

This is probably one of the most practical network tools for normal desktop Linux.

Because when internet feels weird, you usually do not care about abstract interface statistics. You want to know what app is being greedy.

nload: simple internet speedometer

nload is extremely simple.

It shows incoming and outgoing traffic in real time.

Install it:

sudo apt install nload

Run it:

nload

That is it.

No drama. No complicated UI. Just current traffic.

Good tool when you want to quickly check if your connection is idle or actively moving data.

iftop: see network connections by host

iftop is like top, but for network connections.

It shows which hosts your machine is talking to and how much bandwidth they are using.

Install it:

sudo apt install iftop

Run it:

sudo iftop

This is more technical than nethogs.

nethogs says: this app is using internet.

iftop says: your machine is talking to this IP or host and using this much bandwidth.

Both are useful, just for different questions.

vnstat: traffic history without the nonsense

Sometimes real-time monitoring is not enough.

You want to know how much traffic your machine used today, this week, or this month.

That is where vnstat is good.

Install it:

sudo apt install vnstat

Enable it:

sudo systemctl enable --now vnstat

Check usage:

vnstat

Daily usage:

vnstat -d

Monthly usage:

vnstat -m

This is useful if you are on mobile hotspot, limited internet, travel router, or just curious how much data your Linux machine burns.

It is not flashy. It just quietly keeps stats.

That is exactly what I want from a background utility.

wavemon: Wi-Fi signal reality check

If you use Wi-Fi, install wavemon.

It shows signal level, link quality, bitrate, frequency, and other wireless information.

Install it:

sudo apt install wavemon

Run it:

wavemon

This is great when your internet feels slow but you are not sure if the problem is your ISP, router, Wi-Fi signal, or the laptop itself.

Sometimes the answer is very simple: your Wi-Fi signal is garbage.

Move the laptop two meters and suddenly everything works better.

Linux makes you feel like a hacker, but half of troubleshooting is still “move closer to the router”.

bmon: clean interface monitoring

bmon gives you bandwidth monitoring per network interface.

Install it:

sudo apt install bmon

Run it:

bmon

It is useful when you have multiple interfaces: Wi-Fi, Ethernet, Docker, VPN, virtual adapters, maybe a phone tether.

You can see what is actually moving traffic.

Not my first tool, but good to have.

iperf3: test your local network speed

iperf3 is not for monitoring daily traffic.

It is for testing speed between two devices on your local network.

For example, you want to know if your Wi-Fi is actually fast between your laptop and another machine.

Install it:

sudo apt install iperf3

On one machine:

iperf3 -s

On another machine:

iperf3 -c 192.168.1.50

Replace the IP with the server machine IP.

This is useful because internet speed tests do not tell the whole story.

Your ISP can be fine while your local Wi-Fi is trash.

tcpdump: when you want to get serious

tcpdump is the classic packet capture tool.

It is not friendly. It is not pretty. But it is powerful.

Install it:

sudo apt install tcpdump

Capture packets from all interfaces:

sudo tcpdump -i any

Capture only DNS traffic:

sudo tcpdump -i any port 53

Capture traffic to a file:

sudo tcpdump -i any -w capture.pcap

Then you can open that file later in Wireshark.

This is not something you need every day, but if you are doing QA, security testing, Android debugging, proxy troubleshooting, or weird network investigation, it is worth knowing.

curl and jq: boring but essential

These two should be installed on every machine.

curl lets you make HTTP requests from the terminal.

jq lets you read and format JSON.

Install them:

sudo apt install curl jq

Example:

curl https://api.github.com | jq

For web testing, API testing, debugging, automation, and general Linux life, these are essential.

Not sexy. Just useful.

traceroute and whois: old-school network debugging

Install them:

sudo apt install traceroute whois

Check network path:

traceroute example.com

Check domain/IP registration info:

whois example.com

You will not use these every day, but when you need them, you need them.

If I was setting up a fresh Linux laptop, I would install this:

sudo apt update
sudo apt install fastfetch btop htop nethogs nload iftop vnstat wavemon bmon iperf3 tcpdump curl jq traceroute whois

That gives you a nice mix:

  • system info
  • process monitoring
  • bandwidth monitoring
  • Wi-Fi diagnostics
  • traffic history
  • local network testing
  • basic packet capture
  • API/debugging tools

Not too much. Not too little.

My actual top five

If you do not want to install everything, start with this:

sudo apt install fastfetch btop nethogs wavemon vnstat

That is the sweet spot.

fastfetch makes the machine feel nice.

btop shows system health.

nethogs catches bandwidth-hungry apps.

wavemon helps with Wi-Fi issues.

vnstat tracks traffic history.

For a desktop Linux user, that already covers most real-life situations.

Final thoughts

Linux does not need to be complicated.

You do not need a giant monitoring stack just to understand what your laptop is doing.

A few good terminal tools are enough.

And honestly, this is one of the reasons I still like Linux on old machines.

You install some lightweight utilities, open the terminal, and suddenly a 10-year-old laptop feels like a real workstation again.

Not because it became new.

But because you can actually see what is happening.

That is the nice part.

Linux gives you control.

Sometimes too much control.

But with the right tools, it becomes useful instead of annoying.