Ü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.

BeeOnRope
quelle
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
Joel K
quelle
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

user239558
quelle
4

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

Massemanet
quelle
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
dSoultanis
quelle
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

philippe
quelle
Die
Ausgabekette
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;
Tonne
quelle
1

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

Nikolaus
quelle