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
| Plateforme | Commande |
|---|
| Cargo (toutes les plateformes) | cargo install bandwhich |
| Arch Linux | sudo pacman -S bandwhich |
| Debian/Ubuntu | sudo apt install bandwhich |
| Fedora | sudo dnf install bandwhich |
| macOS (Homebrew) | brew install bandwhich |
| Nix | nix-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
| Commande | Description |
|---|
sudo bandwhich | Monitorer toutes les interfaces, TUI en direct |
sudo bandwhich -i eth0 | Regarder une seule interface |
sudo bandwhich --interface wlan0 | Identique, formulaire long |
bandwhich --help | Liste complète des options |
bandwhich --version | Version |
Options clés
| Option | Description |
|---|
-i, --interface NAME | Limiter la surveillance à une seule interface |
-n, --no-resolve | Ignorer les recherches reverse-DNS (plus rapide, IPs brutes) |
-r, --raw | Sortie lisible par machine, non-interactive (bon pour la journalisation) |
-p, --processes | Afficher uniquement le tableau des processus |
-c, --connections | Afficher uniquement le tableau des connexions |
-a, --addresses | Afficher uniquement le tableau des adresses distantes |
--total-utilization | Imprimer un total unique au lieu de l’UI en direct |
-s, --show-dns | Inclure les requêtes DNS dans la vue des connexions |
-d, --dns-server IP | Utiliser un résolveur spécifique pour les recherches inverses |
Touches interactives
| Touche | Action |
|---|
Tab | Cycler la disposition / faire tourner le tableau aggrandi |
Space | Mettre en pause / reprendre les mises à jour |
↑ / ↓ | Défiler dans un tableau |
q / Ctrl+C | Quitter |
Lecture de l’affichage
bandwhich affiche trois tableaux en direct :
| Tableau | Vous dit |
|---|
| Utilisation par processus | Quels exécutables envoient/reçoivent, avec taux up/down |
| Connexions | Chaque socket : local → distant, protocole, et taux par connexion |
| Utilisation par adresse distante | Quels 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
| Outil | Granularité | Notes |
|---|
| bandwhich | Processus + connexion + hôte distant | TUI Rust, résout les distants |
| nethogs | Par processus | Pas de regroupement par hôte distant |
| iftop | Par connexion | Pas d’attribution de processus |
| nload | Totaux par interface | Graphique agrégé simple |
| iptraf-ng | Par interface/connexion | Suite ncurses plus ancienne |
Ressources