bandwhich - Monitor di Larghezza di Banda per Processo Cheatsheet
bandwhich è un’utilità terminale Rust che visualizza l’utilizzo di rete corrente suddiviso per processo, connessione e IP/hostname remoto. A differenza di iftop (per-connessione) o nethogs (solo per-processo), bandwhich correla i socket al processo proprietario e risolve gli endpoint remoti, quindi vedi istantaneamente quale app — e quale host remoto — sta consumando larghezza di banda.
Installazione
| Piattaforma | Comando |
|---|
| Cargo (tutte le piattaforme) | 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 |
| Binario precompilato | Scarica dalla pagina GitHub Releases |
Privilegi
bandwhich deve annusare i pacchetti, quindi ha bisogno di capacità elevate:
# Più semplice: esegui con sudo
sudo bandwhich
# Oppure concedi le capacità al binario una volta (no sudo dopo, Linux)
sudo setcap cap_net_raw,cap_net_admin=eip $(which bandwhich)
Utilizzo di Base
| Comando | Descrizione |
|---|
sudo bandwhich | Monitora tutte le interfacce, TUI live |
sudo bandwhich -i eth0 | Osserva una singola interfaccia |
sudo bandwhich --interface wlan0 | Uguale, forma lunga |
bandwhich --help | Elenco completo delle opzioni |
bandwhich --version | Versione |
Opzioni Chiave
| Opzione | Descrizione |
|---|
-i, --interface NAME | Limita il monitoraggio a una interfaccia |
-n, --no-resolve | Salta le ricerche DNS inverse (più veloce, IP grezzi) |
-r, --raw | Output leggibile da macchina, non interattivo (buono per logging) |
-p, --processes | Mostra solo la tabella dei processi |
-c, --connections | Mostra solo la tabella delle connessioni |
-a, --addresses | Mostra solo la tabella degli indirizzi remoti |
--total-utilization | Stampa un totale una tantum invece dell’UI live |
-s, --show-dns | Includi le query DNS nella visualizzazione della connessione |
-d, --dns-server IP | Usa un resolver specifico per le ricerche inverse |
Tasti Interattivi
| Tasto | Azione |
|---|
Tab | Cicla il layout / ruota quale tabella è espansa |
Space | Pausa / riprendi gli aggiornamenti |
↑ / ↓ | Scorri all’interno di una tabella |
q / Ctrl+C | Esci |
Lettura della Visualizzazione
bandwhich mostra tre tabelle live:
| Tabella | Ti dice |
|---|
| Utilizzo per processo | Quali eseguibili stanno inviando/ricevendo, con velocità su/giù |
| Connessioni | Ogni socket: locale → remoto, protocollo e velocità per connessione |
| Utilizzo per indirizzo remoto | Con quali host remoti (risolti) stai scambiando più dati |
Le velocità sono mostrate come throughput su (▲) e giù (▼) corrente, aggiornate circa una volta al secondo.
Flussi di Lavoro Comuni
# "Cosa sta mangiando il mio upload proprio ora?" — solo processi, nessun lag DNS
sudo bandwhich -p -n
# Indaga un'interfaccia rumorosa e registra un flusso grezzo per analisi successiva
sudo bandwhich -i eth0 --raw | tee bandwhich-eth0.log
# Snapshot una tantum dell'utilizzo totale (script/cron)
sudo bandwhich --total-utilization -n
# Trova i top talker remoti (es. un lavoro di exfiltration o backup)
sudo bandwhich -a
bandwhich vs Altri Monitor di Rete
| Strumento | Granularità | Note |
|---|
| bandwhich | Processo + connessione + host remoto | Rust TUI, risolve remoti |
| nethogs | Per processo | Nessun raggruppamento host-remoto |
| iftop | Per connessione | Nessuna attribuzione di processo |
| nload | Totali per interfaccia | Grafico aggregato semplice |
| iptraf-ng | Per interfaccia/connessione | Suite ncurses più vecchia |
Risorse