Surveillez le volume du trafic réseau via l'interface

17

Existe-t-il un moyen de surveiller le trafic (par exemple, obtenir une vue en direct de l'utilisation) sur une interface réseau particulière, par exemple eth0?

Le problème ici est que l'ensemble d'outils sur la boîte est fixe, et est à peu près un déploiement RHEL en stock, donc les outils supplémentaires ne peuvent pas être utilisés.

Vous cherchez quelque chose de basique et généralement présent comme iostat ici.

BeeOnRope
la source
1
Jetez un œil à stackoverflow.com/questions/596590/… . Certaines des suggestions à ce sujet devraient être utiles.
Andy Smith
D'oh, la recherche échoue (et j'ai essayé). Pour être honnête, je pense que c'est une question de défaut de serveur, pas une question SO :)
BeeOnRope

Réponses:

15

Les données que vous voulez voir apparaissent dans le bon vieux ifconfig.

watch ifconfig eth0

ou pour faire ressortir les choses:

watch -n 1 -d ifconfig eth0
Joel K
la source
Merci - ceci en plus du commentaire de @ user239558 était juste. J'accepte votre réponse puisque vous avez été le premier à le mentionner ifconfig.
BeeOnRope
Repérez. C'est quelque chose que je cherchais et bien qu'il y ait beaucoup de questions similaires à cela sur différents forums, c'est la première réponse que j'ai trouvée qui cloue.
Hazok
ifconfig n'est pas dans le chemin par défaut. / sbin / ifconfig peut être requis.
kevinf
4

Sans installer de nouveaux outils:

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

user239558
la source
4

sur post-2015 ou Linux, cela pourrait être mieux watch -n1 -d ip -s link show [interface]

massemanet
la source
2

Il existe de nombreux utilitaires:

  1. Nethogs
  2. iptraf
  3. Iptables peut être une bonne solution, mais si vous utilisez un pare-feu, il sera un peu difficile de déplacer correctement les règles
dSoultanis
la source
iptraf est exactement ce que je cherchais. Mais sa dernière version semble être dans IPTraf 3.0.0 - 19 septembre 2005. cela peut-il être un problème?
Al-Alamin
2

Vous pouvez également utiliser iptables pour faire une telle réflexion:

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

et

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

Ensuite, iptables -L -n -v vous affichera combien de paquets ont traversé l'interface, iptables -Z pour mettre ce nombre à zéro

philippe
la source
La chaîne de sortie devrait avoir -o comme interface, -i est illégal
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;
tonne
la source
1

Jetez un oeil à ntop. Il fournit de nombreuses données détaillées.

Nicolas
la source