Monitoree el volumen del tráfico de red a través de la interfaz


17

¿Hay alguna manera de monitorear el tráfico (por ejemplo, obtener una vista en vivo de la utilización) a través de una interfaz de red en particular, por ejemplo eth0?

El problema aquí es que el conjunto de herramientas en la caja es fijo, y es más o menos una implementación de RHEL estándar, por lo que no se pueden usar herramientas adicionales.

Buscando algo básico y generalmente presente como iostat aquí.


1
Eche un vistazo a stackoverflow.com/questions/596590/… . Algunas de las sugerencias allí deberían ser útiles.
Andy Smith

Oh, la búsqueda falla (y lo intenté). Para ser justos, creo que es una pregunta serverfault, no un SO :)
BeeOnRope

Respuestas:


15

Los datos que desea ver se muestran en el viejo ifconfig.

watch ifconfig eth0

o para que las cosas se destaquen mejor:

watch -n 1 -d ifconfig eth0

Gracias, esto además del comentario de @ user239558 fue correcto. Estoy aceptando tu respuesta ya que fuiste el primero en mencionarlo ifconfig.
BeeOnRope

Correcto. Esto es algo que he estado buscando y, aunque hay muchas preguntas similares a esto en diferentes foros, esta es la primera respuesta que encontré que lo clava.
Hazok

ifconfig no está en la ruta predeterminada. / sbin / ifconfig puede ser requerido.
kevinf


4

Sin instalar nuevas herramientas:

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


4

en post-2015 más o menos Linux esto podría ser mejor watch -n1 -d ip -s link show [interface]


2

Hay muchas utilidades:

  1. Nethogs
  2. iptraf
  3. Iptables puede ser una buena solución, pero si está utilizando un firewall configurado, será un poco difícil reubicar correctamente las reglas.

iptraf es exactamente lo que estaba buscando. Pero su último lanzamiento parece estar en IPTraf 3.0.0 - 19 de septiembre de 2005. ¿Puede ser esto un problema?
Al-Alamin

2

También puede usar iptables para hacer tal pensamiento:

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

y

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

Luego, iptables -L -n -v le imprimirá cuántos paquetes han pasado por la interfaz, iptables -Z a cero este recuento


La cadena de salida debe tener -o como interfaz, -i es ilegal
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;

1

Echa un vistazo a ntop. Proporciona muchos datos detallados.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.