Aller au contenu

bandwhich - Moniteur de bande passante par processus

bandwhich - Moniteur de bande passante par processus

bandwhich est un utilitaire terminal Rust qui affiche l’utilisation réseau actuelle décomposée par processus, connexion et IP/hostname distant. Contrairement à iftop (par connexion) ou nethogs (par processus uniquement), bandwhich met en corrélation les sockets avec le processus propriétaire et résout les endpoints distants, afin que vous voyiez instantanément quelle application — et quel hôte distant — consomme la bande passante.

Installation

PlateformeCommande
Cargo (toutes les plateformes)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
Binaire précompiléTélécharger depuis la page GitHub Releases

Privileges

bandwhich doit sniffer les paquets, donc il nécessite des capacités élevées :

# Le plus simple : exécuter avec sudo
sudo bandwhich

# Ou accorder les capacités au binaire une fois (pas de sudo après, Linux)
sudo setcap cap_net_raw,cap_net_admin=eip $(which bandwhich)

Utilisation de base

CommandeDescription
sudo bandwhichMonitorer toutes les interfaces, TUI en direct
sudo bandwhich -i eth0Regarder une seule interface
sudo bandwhich --interface wlan0Identique, formulaire long
bandwhich --helpListe complète des options
bandwhich --versionVersion

Options clés

OptionDescription
-i, --interface NAMELimiter la surveillance à une seule interface
-n, --no-resolveIgnorer les recherches reverse-DNS (plus rapide, IPs brutes)
-r, --rawSortie lisible par machine, non-interactive (bon pour la journalisation)
-p, --processesAfficher uniquement le tableau des processus
-c, --connectionsAfficher uniquement le tableau des connexions
-a, --addressesAfficher uniquement le tableau des adresses distantes
--total-utilizationImprimer un total unique au lieu de l’UI en direct
-s, --show-dnsInclure les requêtes DNS dans la vue des connexions
-d, --dns-server IPUtiliser un résolveur spécifique pour les recherches inverses

Touches interactives

ToucheAction
TabCycler la disposition / faire tourner le tableau aggrandi
SpaceMettre en pause / reprendre les mises à jour
/ Défiler dans un tableau
q / Ctrl+CQuitter

Lecture de l’affichage

bandwhich affiche trois tableaux en direct :

TableauVous dit
Utilisation par processusQuels exécutables envoient/reçoivent, avec taux up/down
ConnexionsChaque socket : local → distant, protocole, et taux par connexion
Utilisation par adresse distanteQuels hôtes distants (résolus) échangent le plus de données avec vous

Les taux sont affichés comme le débit up (▲) et down (▼) actuel, rafraîchi environ une fois par seconde.

Flux de travail courants

# "Qu'est-ce qui mange mon upload maintenant ?" — processus uniquement, pas de délai DNS
sudo bandwhich -p -n

# Enquêter sur une interface bruyante et enregistrer un flux brut pour analyse ultérieure
sudo bandwhich -i eth0 --raw | tee bandwhich-eth0.log

# Snapshot unique de l'utilisation totale (scripts/cron)
sudo bandwhich --total-utilization -n

# Trouver les principaux talkers distants (par ex. une exfiltration ou un travail de sauvegarde)
sudo bandwhich -a

bandwhich vs autres moniteurs réseau

OutilGranularitéNotes
bandwhichProcessus + connexion + hôte distantTUI Rust, résout les distants
nethogsPar processusPas de regroupement par hôte distant
iftopPar connexionPas d’attribution de processus
nloadTotaux par interfaceGraphique agrégé simple
iptraf-ngPar interface/connexionSuite ncurses plus ancienne

Ressources