Come utilizzare bmon per monitorare la larghezza di banda della rete su Linux
Pubblicato: 2022-01-29 Con l'applicazione bmon
Linux, puoi vedere l'utilizzo della larghezza di banda sulle tue connessioni di rete. Tuttavia, la comprensione dei dettagli più fini richiede un po' di lavoro investigativo, quindi l'abbiamo fatto per te!
Come funziona bmon
Grafici dinamici e statistiche in tempo reale che mostrano l'attività sulle tue varie interfacce di rete possono darti un ottimo avviso sulle prestazioni della tua rete e sul consumo di larghezza di banda. Questo è esattamente ciò che ti offre bmon
, direttamente in una finestra di terminale.
Puoi dare un'occhiata ai grafici di tanto in tanto, proprio come faresti con il tachimetro della tua auto. Allo stesso modo, se è necessario indagare su qualcosa sul tuo veicolo, un meccanico potrebbe collegarlo a un sistema diagnostico e controllare le letture. bmon
ha letture dettagliate simili.
Va detto, però: le statistiche del comando bmon
possono inizialmente essere sconcertanti. Ad esempio, ce ne sono tre chiamati "Ip6 Reasm/Frag". Cosa succede con quello?
Tuttavia, una volta decifrato il codice, le letture del comando sono inestimabili se si desidera una comprensione più dettagliata del traffico di rete.
Abbiamo lavorato per te e abbiamo persino controllato il codice sorgente per andare in fondo ad alcuni di questi. Per fortuna, tutto il resto su bmon
è ragionevolmente semplice.
Installazione di bmon
Per installare bmon
su Ubuntu, usa questo comando:
sudo apt-get install bmon
Per installare su Fedora, digita quanto segue:
sudo dnf install bmon
Per Manjaro, il comando è il seguente:
sudo pacman -Sy bmon
Il display bmon
Digita bmon
e premi Invio per avviare il programma. Il display bmon
è suddiviso in più riquadri. I primi tre sono etichettati come "Interfacce", "RX" e "TX". Il riquadro centrale mostra le statistiche e i grafici dettagliati.
Il riquadro "Interfacce" mostra le interfacce di rete di cui è dotato il tuo computer. Mostra anche la disciplina di accodamento (qdisc) utilizzata da ciascuna interfaccia di rete (ne parleremo più avanti).
Il riquadro "RX" visualizza i bit ricevuti al secondo ei pacchetti al secondo per ciascuna interfaccia e la relativa coda. Il riquadro "TX" mostra i bit trasmessi al secondo ei pacchetti al secondo per ciascuna interfaccia e la relativa coda.
Sul nostro computer abbiamo solo due interfacce installate: l'interfaccia di loopback (chiamata anche adattatore di loopback) e l'adattatore ethernet cablato. L'interfaccia di loopback si chiama "lo" e l'interfaccia ethernet si chiama "enp0s3".
L'adattatore Ethernet sulla macchina potrebbe avere un nome diverso. Se stai utilizzando un laptop, vedrai anche un adattatore wireless e il suo nome probabilmente inizierà con "wl".
bmon
visualizza le informazioni sull'interfaccia di rete attualmente selezionata. L'interfaccia selezionata è quella con accanto un segno maggiore di ( >
) evidenziato. È possibile premere le frecce su e giù per spostare il segno maggiore di e selezionare l'interfaccia che si desidera monitorare. Abbiamo scelto l'adattatore ethernet.
Ora che siamo su un'interfaccia di rete attiva, vediamo alcune attività nei grafici e nelle letture. Se non vedi alcun grafico, allunga la finestra del terminale verso il basso.
Premere i tasti freccia sinistra e destra per modificare la statistica rappresentata graficamente. Per alcuni grafici, dovrai premere H prima che vengano popolati; quelli che lo richiedono te lo diranno.
Per visualizzare le statistiche per l'interfaccia di rete, allunga la finestra del terminale finché non è abbastanza alta da mostrarle, quindi premi D per visualizzarle. Se si preme I (per Info), viene visualizzata una piccola quantità di informazioni aggiuntive.
Se ingrandisci la finestra del terminale, vengono visualizzati più grafici. Premere Minore di (<) e Maggiore di (>) per aggiungere o rimuovere coppie di grafici. Se si preme G, la visualizzazione dei grafici viene attivata e disattivata del tutto.
Quando si preme il punto interrogativo (?), viene visualizzata la schermata di aiuto "Riferimento rapido" con sequenze di tasti comuni.
Premere nuovamente il punto interrogativo (?) per chiudere la schermata "Riferimento rapido".
Le statistiche dettagliate
Se la finestra del tuo terminale è abbastanza alta e larga (allungala, se non lo è), puoi premere "D" per attivare e disattivare la visualizzazione dettagliata.
Il numero di colonne visualizzate dipende dalla larghezza della finestra del terminale. In una finestra terminale standard a 80 colonne, ne vedrai due. Più ampia è la finestra, più colonne vedrai. Tuttavia, non ottieni più statistiche con una finestra più ampia; vedrai ancora lo stesso set di figure. Ma le colonne saranno più corte.
La voce in alto in ogni colonna potrebbe farti pensare che quella a sinistra mostri le informazioni in byte, mentre quella a destra mostri le informazioni in pacchetti. Tuttavia, non è così.
Ogni colonna contiene una serie di statistiche. Per ciascuna statistica vengono visualizzati il nome del valore ei valori ricevuti ( RX
) e trasmessi ( TX
). Se alcuni valori vengono visualizzati come trattino ( -
), significa che la statistica non è stata registrata per quella direzione.
Alcune delle statistiche sono solo verso l'interno (ricevute) o verso l'esterno (trasmesse). Ad esempio, un trattino ( -
) nella colonna trasmessa indica che la statistica non è valida per i pacchetti in uscita e si applicherà solo ai pacchetti in entrata. La riga superiore mostra il traffico ricevuto e trasmesso in byte (a sinistra) e pacchetti (a destra).
Tutte le altre statistiche sono elencate in ordine alfabetico, saltando da una colonna all'altra. Molti di loro condividono lo stesso nome. Spiegheremo cosa significano tutti di seguito. Abbiamo anche scritto nomi abbreviati. Se IPv6 non è menzionato, quella statistica si riferisce a IPv4.
Le statistiche nella colonna di sinistra sono le seguenti:
- Byte: traffico in byte.
- Errore di interruzione: un conteggio di errori di interruzione. Da qualche parte nel percorso di connessione tra l'origine e la destinazione, un pezzo di software ha causato l'interruzione di una connessione.
- Collisioni: un conteggio degli errori di collisione. Due o più dispositivi hanno tentato di inviare un pacchetto contemporaneamente. Questo non dovrebbe essere un problema in una rete full duplex.
- Errori CRC: un conteggio degli errori di controllo della ridondanza ciclica.
- Errori: il conteggio totale degli errori.
- Frame Error: un conteggio degli errori di frame. Un frame è un contenitore di rete per un pacchetto. Un errore significa che sono stati rilevati frame non validi.
- ICMPv6: il numero di pacchetti di traffico Internet Control Message Protocol v6.
- Errori ICMPv6: un conteggio degli errori ICMP v6.
- Ip6 Broadcast: un conteggio di IPv6 Broadcast, che vengono inviati a tutti i dispositivi sulla rete.
- Pacchetti Ip6 CE: CE sta per "customer edge". Questo di solito si applica ai router. Si connettono con il provider edge (PE) del servizio di connettività a cui il cliente si abbona.
- Ip6 Delivers: il conteggio dei pacchetti IPv6 in entrata.
- Pacchetti Ip6 ECT(1): una notifica di congestione esplicita (ECN) consente a entrambe le estremità di una connessione di rete di avvisare l'altra di una congestione imminente. I pacchetti sono contrassegnati da un flag che funge da avviso. L'estremità ricevente può ridurre le velocità di trasmissione per cercare di evitare la congestione e la possibile perdita di pacchetti. I pacchetti ECN-Capable Transport (ECT) sono contrassegnati da un flag per indicare che vengono consegnati tramite un ECN Capable Transport. Ciò consente ai router intermedi di reagire di conseguenza. I pacchetti ECN di tipo 1 indicano all'estremità ricevente di abilitare ECN e aggiungerlo alle trasmissioni in uscita.
- Errori di intestazione Ip6: il conteggio dei pacchetti con errori nell'intestazione IPv6.
- Pacchetti Ip6 Multicast: il conteggio dei pacchetti IPv6 Multicast (una forma di trasmissione).
- Pacchetti Ip6 non ECT: il conteggio dei pacchetti IPv6 non contrassegnati come ECT(1).
- Riassemblaggio/frammento Ip6 OK: il conteggio dei pacchetti IPv6 che sono stati frammentati a causa delle dimensioni e riassemblati correttamente al momento della ricezione.
- Timeout riassemblaggio Ip6: il conteggio dei pacchetti IPv6 che sono stati frammentati a causa delle dimensioni, ma non sono stati riassemblati al momento della ricezione a causa di timeout.
- Pacchetti troncati Ip6: il conteggio dei pacchetti troncati. Quando un pacchetto IPv6 viene trasmesso, può essere contrassegnato come candidato per il troncamento. Se qualche router intermedio non è in grado di gestire il pacchetto perché supera l'unità di trasmissione massima (MTU), il router tronca il pacchetto, lo contrassegna come tale e lo inoltra alla destinazione. Quando viene ricevuto, l'estremità lontana può inviare un pacchetto ICMP alla fonte, dicendogli di aggiornare la sua stima MTU per accorciare i suoi pacchetti.
- Ip6 Scarti: il conteggio dei pacchetti IPv6 scartati. Se alcuni dispositivi tra l'origine e la destinazione non sono stati configurati correttamente e le loro impostazioni IPv6 non funzionano, non gestiranno il traffico IPv6; sarà scartato.
- Pacchetti Ip6: il conteggio totale di tutti i tipi di pacchetti IPv6.
- Missed Error: il conteggio dei pacchetti mancanti da una trasmissione. I pacchetti sono numerati in modo da poter ricreare il messaggio originale. Se ne mancano, la loro assenza è evidente.
- Nessun gestore: il numero di pacchetti per i quali non è stato trovato alcun gestore di protocollo.
- Errore finestra: il conteggio degli errori della finestra. La finestra di un pacchetto è il numero di ottetti nell'intestazione. Se contiene un numero anomalo, l'intestazione non può essere interpretata.
Le statistiche nella colonna di destra sono le seguenti:
- Pacchetti: traffico in pacchetti.
- Errori del corriere: un conteggio degli errori del corriere. Questi si verificano se si verifica un problema con la modulazione di un segnale. Ciò potrebbe indicare una mancata corrispondenza duplex tra apparecchiature di rete o danni fisici a un cavo, presa o connettore.
- Compresso: il numero di pacchetti compressi.
- Dropped: il numero di pacchetti persi che, di conseguenza, non sono riusciti a raggiungere la loro destinazione (probabilmente a causa della congestione).
- Errori FIFO: il conteggio degli errori del buffer FIFO (first in, first out). Il buffer di trasmissione dell'interfaccia di rete è in sovraccarico perché non viene svuotato abbastanza velocemente.
- Errori Heartbeat: hardware o software potrebbero utilizzare un segnale regolare per mostrare che stanno funzionando correttamente o per consentire la sincronizzazione. Il numero qui è quanti "battiti cardiaci" sono stati persi.
- Errori di checksum ICMPv6: il conteggio degli errori di checksum del messaggio v6 di Internet Control Message Protocol.
- Errori di indirizzo IP6: il conteggio degli errori dovuti a indirizzi IPv6 non validi
- Pacchetti di trasmissione Ip6: il conteggio dei pacchetti di trasmissione IPv6.
- Errori di checksum IPv6: il conteggio degli errori di checksum IPv6. I pacchetti ICMP e User Datagram Protocol (UDP) in IPv6 utilizzano i checksum, ma i normali pacchetti IP IPv6 no.
- Pacchetti Ip6 ECT(0): sono trattati come i pacchetti ECT(1).
- Ip6 inoltrato: il numero di pacchetti IPv6 inoltrati dall'inoltro unicast. Unicast fa saltare i pacchetti dall'origine alla destinazione attraverso una catena di router e spedizionieri intermedi.
- Multicast Ip6: il numero di pacchetti IPv6 che vengono inoltrati al multicast. Multicast invia i pacchetti a un gruppo di destinazioni contemporaneamente (come funziona il Wi-Fi).
- Ip6 No Route: il conteggio di nessun errore di route. Ciò significa che la destinazione è irraggiungibile perché non è possibile calcolare un percorso fino all'estremità più lontana
- Errori di riassemblaggio/frammento Ip6: il conteggio dei pacchetti IPv6 che sono stati frammentati a causa delle dimensioni e che non sono stati riassemblati al momento della ricezione.
- Richieste di riassemblaggio/frammento Ip6: il conteggio dei pacchetti IPv6 che sono stati frammentati a causa delle dimensioni e che hanno dovuto essere riassemblati al momento della ricezione.
- Errori Ip6 Too Big: il numero di messaggi ICMP "troppo grandi" ricevuti, che indicano che sono stati inviati pacchetti IPv6 più grandi dell'unità di trasmissione massima.
- Errori protocollo sconosciuto Ip6: il conteggio dei pacchetti ricevuti utilizzando un protocollo sconosciuto.
- Ip6 Ottetti: il volume degli ottetti ricevuti e trasmessi. IPv6 ha un'intestazione di 40 ottetti (320 bit, 8 bit per ottetto) e una dimensione minima del pacchetto di 1.280 ottetti (10.240 bit).
- Errore di lunghezza: il numero di pacchetti in arrivo con un valore di lunghezza nell'intestazione inferiore alla lunghezza minima possibile del pacchetto.
- Multicast: un conteggio di trasmissioni multicast.
- Over Errors: un conteggio di over Errors. O il buffer di ricezione è in overflow, o sono arrivati pacchetti con un valore di frame maggiore di quello supportato, quindi non possono essere accettati.
Le informazioni aggiuntive
Se si preme I (come in "Informazioni"), si alternano i riquadri delle informazioni aggiuntive. Se non vengono visualizzate ulteriori informazioni, la finestra non è abbastanza grande. Puoi premere D per disattivare le statistiche dettagliate, G per disattivare i grafici, oppure puoi allungare la finestra.
Le informazioni aggiuntive sono le seguenti:
- MTU: L'unità di trasmissione massima.
- Operazione: lo stato operativo dell'interfaccia di rete.
- Indirizzo: l'indirizzo MAC (Media Access Control) dell'interfaccia di rete.
- Modalità: di solito è impostato su
default
, ma potresti vederetunnel
,beet
oro
. I primi tre riguardano la sicurezza IP (IPSec). L'impostazionedefault
è solitamente la modalità ditransport
, in cui il carico utile è crittografato. Le reti private virtuali (VPN) da client a sito in genere lo utilizzano. Le VPN da sito a sito utilizzano in genere la modalitàtunnel
, in cui l'intero pacchetto è crittografato. In una modalità Bound End-to-End Tunnel (beet
), viene creato un tunnel tra due dispositivi con indirizzi IP fissi, nascosti e altri indirizzi IP visibili. La modalitàro
è un metodo di ottimizzazione del routing per IPv6 mobile. - Famiglia: la famiglia di protocolli di rete in uso.
- Qdisc: disciplina in coda. Può essere impostato su
red
(Random Early Detection),codel
(Controlled Delay) ofq_codel
(Fair Queuing with Controlled Delay). - Flag: questi indicatori mostrano le capacità di una connessione di rete. La nostra connessione può utilizzare
broadcast
emulticast
e l'interfaccia èUp
(operativa e connessa). - IfIndex: L'indice di interfaccia è un numero identificativo univoco associato a un'interfaccia di rete.
- Trasmissione: l'indirizzo MAC della trasmissione. L'invio a questo indirizzo trasmette i pacchetti ricevuti a tutti i dispositivi.
- TXQlen: la dimensione della coda di trasmissione (capacità).
- Alias: un alias IP fornisce a una connessione di rete fisica più indirizzi IP. Può quindi dare accesso a diverse sottoreti tramite una scheda di interfaccia di rete. Non ci sono alias in uso sul nostro computer di prova.
bmon
è una creatura un po' buffa, né pesce, né pollame, in qualche modo. I grafici hanno un fascino primitivo e ti danno una buona indicazione di cosa sta succedendo.
Tuttavia, date le limitazioni del rendering in ASCII, non ci si può davvero aspettare che siano super precisi. Uno sguardo occasionale, tuttavia, può dirti se la connessione è al limite, misteriosamente priva di traffico o da qualche parte nel mezzo.
Le statistiche dettagliate, invece, sono proprio questo: dettagliate e granulari. Insieme all'approccio un po' disinvolto nella loro etichettatura, li rende ancora più difficili da decifrare.
Si spera che le descrizioni sopra rendano bmon
un po' più accessibile. È davvero uno strumento utile e leggero con il quale è possibile monitorare lo stato del traffico di rete e il consumo di larghezza di banda.
Comandi Linux | ||
File | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · converti · rclone · shred · srm | |
Processi | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg | |
Rete | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
CORRELATI: I migliori laptop Linux per sviluppatori e appassionati