Arayüz üzerinden ağ trafiği hacmini izleme


17

Belirli bir ağ arabirimi üzerinden trafiği izlemenin (örneğin kullanımın canlı bir görünümünü elde etmenin) bir yolu var mı, örneğin eth0?

Buradaki yakalama, kutudaki araç kümesinin sabitlenmiş olması ve hemen hemen bir stok RHEL dağıtımı olmasıdır, bu nedenle eklenti araçları kullanılamaz.

Burada temel ve genellikle iostat gibi mevcut bir şey mi arıyorsunuz.


1
Stackoverflow.com/questions/596590/… adresine bakın . Buradaki bazı öneriler faydalı olmalıdır.
Andy Smith

D'oh, arama başarısız (ve denedim). Adil olmak gerekirse, bu bir
sunucu hatası

Yanıtlar:


15

Görmek istediğiniz veriler eski eski ifconfig biçiminde gösterilir.

watch ifconfig eth0

veya işleri daha iyi göstermek için:

watch -n 1 -d ifconfig eth0

Teşekkürler - bu @ user239558 tarafından yapılan yoruma ek olarak haklıydı. İlk siz bahsettiğinizden beri cevabınızı kabul ediyorum ifconfig.
BeeOnRope

Açık. Bu aradığım bir şey ve farklı forumlarda buna benzer birçok soru olmasına rağmen, bu çivi bulduğum ilk cevap.
Hazok

ifconfig varsayılan yolda değil. / sbin / ifconfig gerekli olabilir.
kevinf


4

Yeni araçlar takmadan:

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


4

2015 sonrası kadar linux daha iyi olabilir watch -n1 -d ip -s link show [interface]


2

Bir çok yardımcı program var:

  1. Nethogs
  2. Iptraf
  3. Iptables için iyi bir çözüm olabilir, ancak bir güvenlik duvarı kurulumu kullanıyorsanız kuralların doğru yerleştirilmesi biraz zor olacaktır

iptraf tam olarak aradığım şeydi. Ancak son sürümü IPTraf 3.0.0 - 19 Eylül 2005'te görünüyor. Bu bir sorun olabilir mi?
Al-Alamin

2

Iptables'ı da böyle düşünmek için kullanabilirsiniz:

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

ve

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

Sonra iptables -L -n -v arabirimden kaç paket geçtiğini yazdıracaktır, iptables -Z bu sayıyı sıfırlamak için


Çıkış zincirinde -o arayüzü olmalı, -i yasadışı
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;

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.