
Terminal-Tool zur Bandbreitenauslastung

Dies ist ein CLI-Tool zur Anzeige der aktuellen Netzwerkauslastung nach Prozess, Verbindung und Remote-IP/-Hostname
Dieses Projekt befindet sich in passiver Wartung. Kritische Probleme werden behoben, aber es werden keine neuen Funktionen entwickelt. Dies liegt jedoch eher an fehlenden Mitteln und/oder Arbeitskräften, daher sind Pull Requests mehr als willkommen. Wenn Sie in der Lage und bereit sind, langfristig zu diesem Projekt beizutragen, möchten wir Sie einladen, sich als Co-Maintainer zu bewerben.
Weitere Details finden Sie unter The Future of Bandwhich #275.
bandwhich überwacht eine bestimmte Netzwerkschnittstelle und zeichnet die IP-Paketgröße auf, wobei es dies mit dem /proc-Dateisystem unter Linux, lsof unter macOS oder mit der WinApi unter Windows abgleicht. Es reagiert auf die Größe des Terminalfensters, zeigt weniger Informationen an, wenn kein Platz vorhanden ist. Es wird auch versuchen, IPs im Hintergrund per Reverse-DNS nach bestem Wissen und Gewissen in Hostnamen aufzulösen.
Detaillierte Anweisungen für jede Plattform finden Sie in der INSTALL.md.
Wir bieten mehrere generische Binärdateien in den Releases für verschiedene Betriebssysteme an.
git clone https://github.com/imsnif/bandwhich.git
cd bandwhich
cargo build --release
Für die aktuelle minimal unterstützte Rust-Version siehe das Feld rust-version in der Cargo.toml.
Cross-Kompilierung für alternative Ziele wird über cross unterstützt. Hier ist der grobe Ablauf:
uname -m verwenden.cross.cross build --release --target <TARGET_TRIPLE> aus.Bis cross-rs/cross#1222 gelöst ist, verwenden Sie den neuesten HEAD:
cargo install --git https://github.com/cross-rs/cross.git cross
cross build --release --target aarch64-linux-android
Da bandwhich Netzwerkpakete überwacht, benötigt es erhöhte Rechte. Unter Linux gibt es zwei Hauptmethoden, dies zu erreichen:
setcapbandwhich-Binärdatei dauerhaft die erforderlichen Berechtigungen (sogenannte „Capabilities“ in Linux).# Capabilities zuweisen
sudo setcap cap_sys_ptrace,cap_dac_read_search,cap_net_raw,cap_net_admin+ep $(command -v bandwhich)
# als unprivilegierter Benutzer ausführen
bandwhich
cap_sys_ptrace,cap_dac_read_search: erlauben den Zugriff auf /proc/<pid>/fd/, damit bandwhich bestimmen kann, welcher offene Port zu welchem Prozess gehört.cap_net_raw,cap_net_admin: erlauben das Erfassen von Paketen auf Ihrem System.sudo (oder Alternative)sudo bandwhich
Beachten Sie, dass Sie eine command not found-Fehlermeldung erhalten können, wenn Ihre Installationsmethode bandwhich irgendwo in Ihrem Home-Verzeichnis installiert hat (Sie können dies mit command -v bandwhich überprüfen). Dies liegt daran, dass sudo in vielen Distributionen aus Sicherheitsgründen standardmäßig nicht das $PATH des Benutzers übernimmt.
Um dies zu umgehen, können Sie eine der folgenden Möglichkeiten nutzen:
sudo Ihre $PATH-Umgebungsvariable beibehalten;$PATH explizit beim Ausführen von bandwhich: sudo env "PATH=$PATH" bandwhich;sudo: sudo $(command -v bandwhich).Möglicherweise müssen Sie zuerst npcap installieren, um Pakete unter Windows zu erfassen.
Usage: bandwhich [OPTIONS]
Options:
-i, --interface <INTERFACE> The network interface to listen on, eg. eth0
-r, --raw Machine friendlier output
-n, --no-resolve Do not attempt to resolve IPs to their hostnames
-s, --show-dns Show DNS queries
-d, --dns-server <DNS_SERVER> A dns server ip to use instead of the system default
--log-to <LOG_TO> Enable debug logging to a file
-v, --verbose... Increase logging verbosity
-q, --quiet... Decrease logging verbosity
-p, --processes Show processes table only
-c, --connections Show connections table only
-a, --addresses Show remote addresses table only
-u, --unit-family <UNIT_FAMILY> Choose a specific family of units [default: bin-bytes] [possible values: bin-bytes, bin-bits, si-bytes, si-bits]
-t, --total-utilization Show total (cumulative) usages
-h, --help Print help (see more with '--help')
-V, --version Print version
Siehe CONTRIBUTING.md.
MIT
| OS | Architektur | Support | Verwendung |
|---|
| Android | aarch64 | Nach bestem Vermögen |
Alle modernen Android-Geräte. Beachten Sie, dass dies eine reine Binärdatei ist, kein APK für den allgemeinen Gebrauch. |
| Linux | aarch64 | Voll | 64-Bit ARMv8+ (Server, einige moderne Router, RPi-4+). |
| armv7hf | Nach bestem Vermögen | 32-Bit ARMv7 (ältere Router, vor RPi-4). | |
| x64 | Voll | Die meisten Linux-Desktops und -Server. | |
| MacOS | aarch64 | Voll | Apple Silicon Macs (2021+). |
| x64 | Intel Macs (vor 2021). | ||
| Windows | x64 | Voll | Die meisten Windows-Desktops und -Server. |