it-swarm.com.de

Überwachen Sie das Netzwerkverkehrsvolumen über die Schnittstelle

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

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

Auf der Suche nach etwas Grundlegendem und normalerweise Vorhandenem wie iostat hier.

18
BeeOnRope

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
17
Joel K

Ich benutze den Befehl iftop. Es zeigt Statistiken in Echtzeit.

iftop -i eth0

Schauen Sie sich hier einige Szenen an:

http://www.thegeekstuff.com/2008/12/iftop-guide-display-network-interface-bandwidth-usage-on-linux/

16
Awi

Ohne neue Tools zu installieren:

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

4
user239558

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

4
massemanet
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;
3
ton

Es gibt viele Dienstprogramme:

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

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, iptables -Z, um diese Anzahl auf Null zu setzen

2
philippe

Schauen Sie sich ntop an. Es liefert viele detaillierte Daten.

1
Nicholas