Monitoruj natężenie ruchu sieciowego przez interfejs


17

Czy istnieje sposób monitorowania ruchu (np. Uzyskanie podglądu wykorzystania na żywo) za pośrednictwem określonego interfejsu sieciowego, powiedzmy eth0?

Problem polega na tym, że zestaw narzędzi na pudełku jest stały i jest prawie zwykłym wdrożeniem RHEL, więc nie można używać narzędzi dodatkowych.

Szukasz czegoś podstawowego i zwykle obecnego, takiego jak iostat tutaj.


1
Zajrzyj na stackoverflow.com/questions/596590/… . Niektóre z sugestii powinny być przydatne.
Andy Smith

Nie, wyszukiwanie nie powiodło się (i próbowałem). Szczerze mówiąc, myślę, że to pytanie o
awarię serwera

Odpowiedzi:


15

Dane, które chcesz zobaczyć, pokazują się w starym dobrym ifconfig.

watch ifconfig eth0

lub żeby lepiej się wyróżniało:

watch -n 1 -d ifconfig eth0

Dzięki - to oprócz komentarza @ user239558 było w sam raz. Przyjmuję twoją odpowiedź, odkąd jako pierwszy wspomniałeś ifconfig.
BeeOnRope

Spot on. Jest to coś, czego szukałem i chociaż na wielu forach jest wiele podobnych pytań, jest to pierwsza znaleziona przeze mnie odpowiedź.
Hazok

ifconfig nie znajduje się w domyślnej ścieżce. / sbin / ifconfig może być wymagany.
kevinf



4

na Linuksie po 2015 roku może być lepiej watch -n1 -d ip -s link show [interface]


2

Istnieje wiele narzędzi:

  1. Nethogs
  2. iptraf
  3. Iptables może być dobrym rozwiązaniem, ale jeśli używasz zapory sieciowej, trochę trudno będzie poprawnie przenieść reguły

iptraf jest dokładnie tym, czego szukałem. Ale ostatnie wydanie wydaje się być w IPTraf 3.0.0 - 19 września 2005 r. Czy to może być problem?
Al-Alamin,

2

Możesz także użyć iptables, aby tak myśleć:

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

i

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

Następnie iptables -L -n -v wypisze ci liczbę pakietów przechodzących przez interfejs, iptables -Z wyzeruje tę liczbę


Łańcuch wyjściowy powinien mieć -o jako interfejs, -i jest nielegalny
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;

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.