Monitorizar el trafico de red en Linux con vnStat

vnstat

Aunque por aquí ya hemos hablado de programas –iftop, netstat, nethogs, IPTraf, wireshark…- e incluso distros especializadas en analizar el tráfico de red, en esta ocasión quiero llamaros la atención sobre vnStat, un programa sencillo para controlar el tráfico en sistemas Linux y *BSD, que si bien no es un sniffer si nos va a servir para vigilar la cantidad de datos que intercambia nuestra sistema.

Entre las caracteristicas de vnStat es que se ejecuta en la terminal de una manera muy sencilla sin necesidad de ser root, sus estadísticas son persistentes a cualquier tipo de reinicio, puede monitorizar múltiples interfaces al mismo tiempo, permite exportar los resultados en forma de gráfica y es muy ligero en cuanto a su consumo de recursos.

El programa está disponible para Arch y sus derivadas:

sudo pacman -S vnstat

así como en los repositorios de la mayoría de distros; para ponerlo en funcionamiento, es necesario habilitar e iniciar el servicio.

En mi caso con Antergos uso systemd como sistema de inicio, así que:

systemctl enable vnstat.service
systemctl start vnstat.service

En ese momento empezará a trabajar en segundo plano, si queremos ver las estadísticas generales ejecutamos:

vnstat

Es posible que os de error, ya que por defecto la interfaz a examinar es eth0, eso lo podemos modificar al principio del archivo de configuración /etc/vnstat.conf, en el apartado de “default interface”,

sudo nano /etc/vnstat.conf

sustituyéndola por la nuestra (en mi caso la red wifi wlp6s0)

# vnStat 1.15 config file
##

# default interface
Interface "wlp6s0"

# location of the database directory
DatabaseDir "/var/lib/vnstat"

además podemos crear la base de datos para una interfaz de red determinada.

sudo vnstat -u -i wlp6s0

Tenemos la opción de elegir la red a examinar

vnstat -i wlp6s0

y monitorizar en tiempo real (pulsamos Ctrl+C si queremos detenerlo)

vnstat -l

vnstat-tiempo-real

Hacerlo por horas:

vnstat -h

días:

vnstat -d

o meses:

vnstat -m

o incluso calcular el tráfico por segundo:

[jose@replicante ~]$ vnstat -tr 
1077 packets sampled in 5 seconds
Traffic average for wlp6s0

      rx        58,22 kbit/s            84 packets/s
      tx         1,10 Mbit/s           131 packets/s

En las salida de los diferentes comandos tx representa la transmisión de datos y rx su recepción, y dependiendo de los parámetros utilizados nos encontraremos otros valores como “estimado”, “media”, “máximo” o “total”.

A través del comando vnstati, también es capaz de proporcionarnos un informe gráfico que podemos exportar a un archivo:

vnstati -s -i wlp6s0 -o archivo.png

vnstat-grafica

incluso podemos combinar diferentes tipos de gráficas, esta mola bastante:

vnstati -vs -o imagen.png

vnstat-grafica2

Tenéis más opciones de uso, en la ayuda y el manual del programa, así como en la página web del proyecto.

6 thoughts on “Monitorizar el trafico de red en Linux con vnStat”

  1. Anger says:

    Que buen post, sobre todo cuando genera la grafica vnstati -vs -o imagen.png no conocia la opcion

    1. tannhausser says:

      Gracias @Anger 🙂

  2. Juventino says:

    Una duda mi estimado Tannhausser, hay alguna aplicación para poder ver que equipos están conectados a la red wifi o ethernet?

    1. tannhausser says:

      @juventino A mi para eso me gusta nmap, aunque también recuerdo haber utilizado el comando fping, programas como wifiguard (veo que ya no tiene versión para linux) y creo que Angry Ip hacía algo parecido.

  3. x-man says:

    Excelente, …sabes también se le puede agregar “vnstat-cgi” , pero al menos a mi con el resultado que me da “vnstat” ya me es suficiente.

    Saludos

    Gracias.

    1. tannhausser says:

      Gracias por el aporte xman!

Deja un comentario