
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]