Zum Inhalt springen

bandwhich - Pro-Prozess-Bandbreiten-Monitor Spickzettel

bandwhich - Pro-Prozess-Bandbreiten-Monitor Spickzettel

bandwhich ist ein Rust-Terminal-Hilfsprogramm, das die aktuelle Netzwerkauslastung aufgeschlüsselt nach Prozess, Verbindung und Remote-IP/Hostname anzeigt. Im Gegensatz zu iftop (pro Verbindung) oder nethogs (nur pro Prozess) korreliert bandwhich Sockets mit dem besitzenden Prozess und löst Remote-Endpunkte auf, sodass du sofort siehst, welche App — und welcher Remote-Host — Bandbreite verbraucht.

Installation

PlattformBefehl
Cargo (alle Plattformen)cargo install bandwhich
Arch Linuxsudo pacman -S bandwhich
Debian/Ubuntusudo apt install bandwhich
Fedorasudo dnf install bandwhich
macOS (Homebrew)brew install bandwhich
Nixnix-env -iA nixpkgs.bandwhich
Vorkompiliertes BinaryVon der GitHub-Releases-Seite herunterladen

Berechtigungen

bandwhich muss Pakete abfangen, daher benötigt es erhöhte Fähigkeiten:

# Einfachste Methode: mit sudo ausführen
sudo bandwhich

# Oder gib dem Binary einmalig Fähigkeiten (danach kein sudo mehr, Linux)
sudo setcap cap_net_raw,cap_net_admin=eip $(which bandwhich)

Grundlegende Verwendung

BefehlBeschreibung
sudo bandwhichÜberwache alle Schnittstellen, Live-TUI
sudo bandwhich -i eth0Überwache eine einzelne Schnittstelle
sudo bandwhich --interface wlan0Gleiche, lange Form
bandwhich --helpVollständige Optionsliste
bandwhich --versionVersion

Wichtige Optionen

OptionBeschreibung
-i, --interface NAMEÜberwachung auf eine Schnittstelle beschränken
-n, --no-resolveReverse-DNS-Lookups überspringen (schneller, rohe IPs)
-r, --rawMaschinenlesbares, nicht-interaktives Ausgabeformat (gut zum Protokollieren)
-p, --processesZeige nur die Prozess-Tabelle
-c, --connectionsZeige nur die Verbindungs-Tabelle
-a, --addressesZeige nur die Remote-Adressen-Tabelle
--total-utilizationEinmalige Gesamtauslastung drucken, statt der Live-UI
-s, --show-dnsDNS-Abfragen in der Verbindungsansicht einschließen
-d, --dns-server IPEinen bestimmten Resolver für Reverse-Lookups verwenden

Interaktive Tasten

TasteAktion
TabLayout-Zyklus / drehe die erweiterte Tabelle
SpacePausieren / Aktualisierungen fortsetzen
/ Innerhalb einer Tabelle scrollen
q / Ctrl+CBeenden

Anzeige lesen

bandwhich zeigt drei Live-Tabellen:

TabelleSagt dir
Auslastung nach ProzessWelche ausführbaren Dateien senden/empfangen, mit Auf-/Ab-Raten
VerbindungenJeder Socket: lokal → remote, Protokoll und pro-Verbindungs-Rate
Auslastung nach Remote-AdresseWelche Remote-Hosts (aufgelöst) tauschen die meisten Daten aus

Raten werden als aktueller Upload (▲) und Download (▼) Durchsatz angezeigt, etwa einmal pro Sekunde aktualisiert.

Häufige Workflows

# "Was frisst gerade meinen Upload?" — nur Prozesse, kein DNS-Verzögerung
sudo bandwhich -p -n

# Untersuche eine laute Schnittstelle und protokolliere einen Raw-Stream für spätere Analyse
sudo bandwhich -i eth0 --raw | tee bandwhich-eth0.log

# Einmalige Momentaufnahme der Gesamtauslastung (Skripte/Cron)
sudo bandwhich --total-utilization -n

# Finde die Top-Remote-Sprecher (z.B. einen Datenabfluss oder Sicherungsauftrag)
sudo bandwhich -a

bandwhich vs andere Netzwerk-Monitore

WerkzeugGranularitätNotizen
bandwhichProzess + Verbindung + Remote-HostRust-TUI, löst Remotes auf
nethogsPro ProzessKeine Remote-Host-Gruppierung
iftopPro VerbindungKeine Prozess-Zuordnung
nloadPro Schnittstelle gesamtEinfaches Aggregat-Diagramm
iptraf-ngPro Schnittstelle/VerbindungÄltere ncurses-Suite

Ressourcen