Überwachen Sie das Netzwerkverkehrsvolumen über die Schnittstelle


17

Gibt es eine Möglichkeit, den Datenverkehr über eine bestimmte Netzwerkschnittstelle zu überwachen (z. B. um eine Live-Ansicht der Auslastung zu erhalten), z. B. eth0?

Der Haken dabei ist, dass der Satz von Tools auf der Box feststeht und so ziemlich eine Standard-RHEL-Bereitstellung ist, sodass Add-On-Tools nicht verwendet werden können.

Auf der Suche nach etwas Grundlegendem und gewöhnlich Präsentem wie iostat hier.


1
Schauen Sie sich stackoverflow.com/questions/596590/… an . Einige der dort enthaltenen Vorschläge sollten hilfreich sein.
Andy Smith

D'oh, Suche fehlgeschlagen (und ich habe es versucht). Um fair zu sein, ich denke, es ist eine Serverfehler-Frage, keine SO :)
BeeOnRope

Antworten:


14

Die Daten, die Sie sehen möchten, werden in der guten alten ifconfig angezeigt.

watch ifconfig eth0

oder um die Dinge besser hervorzuheben:

watch -n 1 -d ifconfig eth0

Danke - das war neben dem Kommentar von @ user239558 genau richtig. Ich akzeptiere Ihre Antwort, da Sie die ersten waren, die erwähnt wurden ifconfig.
BeeOnRope

Spot on. Dies ist etwas, wonach ich gesucht habe, und obwohl es in verschiedenen Foren viele ähnliche Fragen dazu gibt, ist dies die erste Antwort, die ich gefunden habe, die es nagelt.
Hazok

ifconfig ist nicht im Standardpfad. Möglicherweise ist / sbin / ifconfig erforderlich.
Kevinf


4

Ohne neue Tools zu installieren:

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


4

in post-2015 oder so Linux könnte dies besser sein watch -n1 -d ip -s link show [interface]


2

Es gibt viele Dienstprogramme:

  1. Nethogs
  2. iptraf
  3. Iptables kann eine gute Lösung sein, aber wenn Sie eine Firewall verwenden, ist es etwas schwierig, die Regeln korrekt zu verschieben

iptraf ist genau das, wonach ich gesucht habe. Die letzte Veröffentlichung scheint jedoch in IPTraf 3.0.0 - 19. September 2005 zu sein. Kann dies ein Problem sein?
Al-Alamin

2

Sie können auch iptables verwenden, um Folgendes zu tun:

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

und

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

Dann gibt iptables -L -n -v aus, wie viele Pakete die Schnittstelle durchlaufen haben, und iptables -Z setzt diesen Wert auf Null



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

Schauen Sie sich an ntop. Es enthält viele detaillierte Daten.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.