
Strumento di utilizzo della larghezza di banda del terminale

Questa è un'utilità CLI per visualizzare l'utilizzo attuale della rete per processo, connessione e IP/hostname remoto.
Questo progetto è in manutenzione passiva. I problemi critici verranno affrontati, ma non sono in corso lavori su nuove funzionalità. Tuttavia, ciò è dovuto più a una mancanza di fondi e/o risorse umane che ad altro, quindi le pull request sono più che benvenute. Inoltre, se sei in grado e disposto a contribuire a questo progetto a lungo termine, ti invitiamo a candidarti per la co-manutenzione.
Per maggiori dettagli, vedi Il futuro di Bandwhich #275.
bandwhich annusa una data interfaccia di rete e registra la dimensione dei pacchetti IP,
correlandola con il filesystem /proc su Linux, lsof su macOS o utilizzando WinApi su Windows.
È reattivo alla dimensione della finestra del terminale, mostrando meno informazioni se non c'è spazio.
Tenterà inoltre di risolvere gli IP nei rispettivi nomi host in background utilizzando DNS inverso
con il massimo sforzo.
Per istruzioni dettagliate per ogni piattaforma, vedi INSTALL.md.
Offriamo diversi binari generici nei rilasci per vari sistemi operativi.
| SO | Architettura | Supporto | Utilizzo |
|---|---|---|---|
| Android | aarch64 | A miglior sforzo |
Tutti i moderni dispositivi Android. Nota che questo è un file binario puro, non un APK adatto per l'uso generico. |
| Linux | aarch64 | Completo | ARMv8+ a 64 bit (server, alcuni router moderni, RPi-4+). |
| armv7hf | A miglior sforzo | ARMv7 a 32 bit (router più vecchi, pre-RPi-4). | |
| x64 | Completo | La maggior parte dei desktop e server Linux. | |
| MacOS | aarch64 | Completo | Mac con Apple Silicon (2021+). |
| x64 | Mac Intel (pre-2021). | ||
| Windows | x64 | Completo | La maggior parte dei desktop e server Windows. |
git clone https://github.com/imsnif/bandwhich.git
cd bandwhich
cargo build --release
Per la versione minima supportata di Rust aggiornata, fai riferimento al campo rust-version in Cargo.toml.
La cross-compilazione per target alternativi è supportata tramite cross. Ecco la procedura approssimativa:
uname -m.cross.cross build --release --target <TARGET_TRIPLE>.Fino a quando cross-rs/cross#1222 non sarà risolto, usa l'ultimo HEAD:
cargo install --git https://github.com/cross-rs/cross.git cross
cross build --release --target aarch64-linux-android
Poiché bandwhich annusa pacchetti di rete, richiede privilegi elevati.
Su Linux, ci sono due modi principali per farlo:
setcapbandwhich i privilegi necessari (chiamati "capacità" in Linux).# assegna le capacità
sudo setcap cap_sys_ptrace,cap_dac_read_search,cap_net_raw,cap_net_admin+ep $(command -v bandwhich)
# esegui come utente non privilegiato
bandwhich
cap_sys_ptrace,cap_dac_read_search: consentono l'accesso a /proc/<pid>/fd/, in modo che bandwhich possa determinare a quale processo appartiene una porta aperta.cap_net_raw,cap_net_admin: consentono la cattura di pacchetti sul sistema.sudo (o alternativa)sudo bandwhich
Nota che se il tuo metodo di installazione ha installato bandwhich in una directory
nella tua home directory (puoi verificarlo con command -v bandwhich), potresti ricevere
un errore comando non trovato. Questo accade perché in molte distribuzioni, sudo per
impostazione predefinita non mantiene il $PATH dell'utente per motivi di sicurezza.
Per ovviare, puoi fare una delle seguenti:
sudo preservi la tua variabile d'ambiente $PATH;$PATH durante l'esecuzione di bandwhich: sudo env "PATH=$PATH" bandwhich;sudo: sudo $(command -v bandwhich).Potrebbe essere necessario installare prima npcap per catturare pacchetti su Windows.
Usage: bandwhich [OPTIONS]
Options:
-i, --interface <INTERFACE> L'interfaccia di rete su cui ascoltare, es. eth0
-r, --raw Output più adatto alle macchine
-n, --no-resolve Non tentare di risolvere gli IP nei nomi host
-s, --show-dns Mostra le query DNS
-d, --dns-server <DNS_SERVER> Un indirizzo IP del server DNS da usare al posto di quello di sistema
--log-to <LOG_TO> Abilita il logging di debug su un file
-v, --verbose... Aumenta la verbosità del logging
-q, --quiet... Diminuisce la verbosità del 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
-u, --unit-family <UNIT_FAMILY> Scegli una famiglia specifica di unità [default: bin-bytes] [possible values: bin-bytes, bin-bits, si-bytes, si-bits]
-t, --total-utilization Mostra gli utilizzi totali (cumulativi)
-h, --help Stampa l'aiuto (vedi di più con '--help')
-V, --version Stampa la versione
Vedi CONTRIBUTING.md.
MIT