Monitorare il volume del traffico di rete tramite l'interfaccia


17

Esiste un modo per monitorare il traffico (ad esempio, ottenere una visualizzazione in tempo reale dell'utilizzo) su una particolare interfaccia di rete, diciamo eth0?

Il problema è che il set di strumenti sulla confezione è stato risolto ed è praticamente una distribuzione RHEL di serie, quindi gli strumenti aggiuntivi non possono essere utilizzati.

Alla ricerca di qualcosa di semplice e di solito presente come iostat qui.


1
Dai un'occhiata a stackoverflow.com/questions/596590/… . Alcuni dei suggerimenti qui riportati dovrebbero essere utili.
Andy Smith,

D'oh, la ricerca fallisce (e ho provato). Ad essere sinceri, penso che sia una domanda serverfault, non così SO :)
BeeOnRope

Risposte:


15

I dati che si desidera visualizzare vengono visualizzati in un buon vecchio ifconfig.

watch ifconfig eth0

o per far risaltare meglio le cose:

watch -n 1 -d ifconfig eth0

Grazie - questo oltre al commento di @ user239558 era giusto. Accetto la tua risposta da quando sei stato il primo a menzionare ifconfig.
BeeOnRope,

Spot on. Questo è qualcosa che stavo cercando e anche se ci sono molte domande simili a questa su forum diversi, questa è la prima risposta che ho trovato.
Hazok,

ifconfig non è nel percorso predefinito. / sbin / ifconfig potrebbe essere richiesto.
Kevin Inf


4

Senza installare nuovi strumenti:

while ifconfig eth0 | grep 'RX bytes'; do sleep 10; done


4

su post-2015 o giù di lì Linux potrebbe essere migliore watch -n1 -d ip -s link show [interface]


2

Ci sono molte utilità:

  1. nethogs
  2. iptraf
  3. Iptables può essere una buona soluzione, ma se si utilizza una configurazione del firewall sarà un po 'difficile riposizionare correttamente le regole

iptraf è esattamente quello che stavo cercando. Ma la sua ultima versione sembra essere in IPTraf 3.0.0 - 19 settembre 2005. Può essere un problema?
Al-Alamin,

2

Puoi anche usare iptables per fare questo:

iptables -A INPUT -p tcp --dport $port -i eth0

e

iptables -A OUTPUT -p tcp --sport $port -i eth0

Quindi iptables -L -n -v ti stamperà quanti pacchetti hanno attraversato l'interfaccia, iptables -Z per azzerare questo conteggio


La catena di output dovrebbe avere -o come interfaccia, -i è illegale
drake7707,

2
function humanValue()
{
    h=( '' K M G T P )
    i=1; v=$(( $1 * 8 ))
    while [ $v -gt $(( 1 << 10 * i )) ]; do let i++; done;
    echo -n "$(( $v >> 10 * --i )) ${h[i]}b/s";
}
ifaces=$(ip addr | grep -E "^[0-9]:" | cut -d" " -f2 | tr -d \:)
declare -A RX2 TX2;
while sleep 1; 
do
    date 
    for INTERFACE in $ifaces;
    do
        RX1=$(cat /sys/class/net/${INTERFACE}/statistics/rx_bytes)
        TX1=$(cat /sys/class/net/${INTERFACE}/statistics/tx_bytes)
        DOWN=$(( RX1 - RX2[$INTERFACE] ))
        UP=$(( TX1 - TX2[$INTERFACE] ))
        RX2[$INTERFACE]=$RX1; TX2[$INTERFACE]=$TX1
        echo -e "[ $INTERFACE:\tRX: $(humanValue $DOWN)\t|\tTX: $(humanValue $UP) ]"
    done;
done;

1

Dai un'occhiata ntop. Fornisce molti dati dettagliati.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.