En este tutorial, veremos qué es vnStat, cómo instalarlo y luego cómo monitorear el ancho de banda de la red usando vnStat en los sistemas operativos Linux y BSD.
Introducción a Vnstat
VnStat es un monitor de tráfico de red gratuito, de código abierto, liviano y basado en consola. Usando VnStat, podemos encontrar fácilmente cuánto ancho de banda de red se consume y mostrar el resultado por hora, día, mes o por un período de tiempo específico.
Vnstat recopila los detalles de uso de una o varias interfaces de red y muestra el resumen en la línea de comandos. También ayuda a calcular la cantidad aproximada de uso de ancho de banda de Internet por mes o por día o durante un período de tiempo determinado.
Instalar vnStat en Linux
VnStat está disponible en los repositorios predeterminados de muchos sistemas operativos Linux y Unix. Puede instalarlo usando el administrador de paquetes de su distribución.
En sistemas basados en Arch:
Asegúrate de haber habilitado [Community]
repositorio e instalarlo usando pacman como a continuación:
$ sudo pacman -S vnstat
En Debian, Uubntu, Linux Mint, Pop OS:
$ sudo apt install vnstat
En Ubuntu, es posible que deba habilitar [Universe]
repositorio para instalar vnstat.
En Redhat, CentOS, AlmaLinux, Rocky Linux:
Agregue y habilite el repositorio EPEL primero:
$ sudo dnf install epel-release
Y luego instale vnStat como se muestra arriba.
$ sudo dnf install vnstat
En Fedora:
$ sudo dnf install vnstat
En openSUSE:
$ sudo zypper install vnstat
Después de instalar vnStat, inicie su servicio usando el comando:
$ sudo systemctl enable --now vnstat
No necesita iniciar vnstat en sistemas basados en DEB, ya que se iniciará automáticamente durante el tiempo de instalación.
Instalar vnStat en FreeBSD
En sistemas BSD como freeBSD, actualice el árbol de puertos e instale vnStat como root
usuario usando comandos:
# pkg update
# pkg install vnstat
Una vez instalado, habilite e inicie el servicio vnStat como se muestra a continuación.
# echo 'vnstat_enable="YES"' >> /etc/rc.conf
# service vnstat start
Salida de muestra:
Starting vnstat. No interfaces found in database, adding available interfaces... Interface "em0" added with 1000 Mbit bandwidth limit. -> 1 new interface found. Limits can be modified using the configuration file. See "man vnstat.conf". Unwanted interfaces can be removed from monitoring with "vnstat --remove".".
Configurar la interfaz de red predeterminada en Linux
vnStat utiliza eth0
como interfaz de red predeterminada en su archivo de configuración (/etc/vnstat.conf
).
Sin embargo, en algunos sistemas Linux (por ejemplo, Ubuntu), el nombre de la interfaz de red puede ser diferente, como enp0s3
, enp0s8
. Puede verificar el nombre de la interfaz de red usando "ip addr"
comando.
Echemos un vistazo al contenido del archivo de configuración de vnstat.
$ head /etc/vnstat.conf
Salida de muestra:
# vnStat 1.18 config file ## # default interface Interface "eth0" # location of the database directory DatabaseDir "/var/lib/vnstat" # locale (LC_ALL) ("-" = use system locale)
Como puede ver, la interfaz predeterminada es etho
en este archivo.
Revisemos las interfaces de red disponibles identificadas por vnstat.
$ ls /var/lib/vnstat enp0s3 enp0s8
Como puede ver, las interfaces de red disponibles son diferentes a la definida en el archivo vnstat.conf.
Si no configura la interfaz predeterminada correcta, es posible que obtenga el siguiente error al ver el tráfico de ancho de banda de la red cada hora o mensualmente.
Error: Unable to read database "/var/lib/vnstat/eth0": No such file or directory
Esto sucede porque la interfaz predeterminada está definida incorrectamente en /etc/vnstat.conf
archivo.
Para configurar la interfaz de red predeterminada, edite /etc/vnstat.conf
y actualice el nombre de interfaz correcto. Puede editar directamente /etc/vnstat.conf
archivo y actualice el nombre de la interfaz globalmente. Sin embargo, se recomienda crear su propio archivo de configuración vnstat en el directorio HOME del usuario.
$ cp /etc/vnstat.conf ~/.vnstatrc
$ nano ~/.vnstatrc
Voy a usar enp0s3
como mi interfaz predeterminada.

Reemplace enp0s3 con el suyo propio. Guarde y cierre el archivo.
Configurar la interfaz de red predeterminada en FreeBSD
Edite el archivo de configuración de vnstat:
# vi /usr/local/etc/vnstat.conf
Si el archivo de configuración no está disponible, cree uno nuevo utilizando el archivo de configuración de muestra:
# cp /usr/local/etc/vnstat.conf.sample /usr/local/etc/vnstat.conf
Luego, actualice la interfaz de red predeterminada correcta:
Interface "em0"
Guarde y cierre el archivo.
Supervisión del ancho de banda de la red mediante vnStat en Linux y Unix
Si es nuevo en vnStat, abra la sección de ayuda de vnStat y vea la lista de opciones disponibles ejecutando este comando:
$ vnstat --help
Salida de muestra:
vnStat 1.18 by Teemu Toivola <tst at iki dot fi> -q, --query query database -h, --hours show hours -d, --days show days -m, --months show months -w, --weeks show weeks -t, --top10 show top 10 days -s, --short use short output -u, --update update database -i, --iface select interface (default: eth0) -?, --help short help -v, --version show version -tr, --traffic calculate traffic -ru, --rateunit swap configured rate unit -l, --live show transfer rate in real time See also "--longhelp" for complete options list and "man vnstat".
Ver el uso de ancho de banda de todas las interfaces
Ahora, mostremos el tráfico de red de todas las interfaces.
Para hacerlo, simplemente ejecute:
$ vnstat
Salida de muestra:
rx / tx / total / estimated enp0s3: Sep '19 120 KiB / 66 KiB / 186 KiB / 0 KiB today 120 KiB / 66 KiB / 186 KiB / -- enp0s8: Sep '19 128 KiB / 88 KiB / 216 KiB / 0 KiB today 128 KiB / 88 KiB / 216 KiB / --

Aquí,
rx
- El tráfico recibidotx
- El tráfico transferido
Espere unos minutos para que Vnstat comience a recopilar el uso del tráfico de la red. Si inicia vnstat inmediatamente después de instalarlo, puede obtener un resultado similar al siguiente.
enp0s3: Not enough data available yet.
O bien, obtendrá el siguiente resultado en distribuciones basadas en RPM como CentOS.
No database found, nothing to do. Use --help for help. A new database can be created with the following command: vnstat --create -i eth0 Replace 'eth0' with the interface that should be monitored. The following interfaces are currently available: enp0s3 (1000 Mbit) lo
Ahora no muestra nada. Es porque vnStat aún no ha comenzado a recopilar las estadísticas.
Ver el uso de ancho de banda de una interfaz en particular
Para ver el uso del ancho de banda de la red de una interfaz en particular, por ejemplo, enp0s3 , solo mencione el nombre de la tarjeta de red como se muestra a continuación.
$ vnstat -i enp0s3
Salida de muestra:
Database updated: Mon Sep 9 08:26:47 2019 enp0s3 since 09/09/2019 rx: 136 KiB tx: 74 KiB total: 210 KiB monthly rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- Sep '19 136 KiB | 74 KiB | 210 KiB | 0.00 kbit/s ------------------------+-------------+-------------+--------------- estimated -- | -- | -- | daily rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- today 136 KiB | 74 KiB | 210 KiB | 0.06 kbit/s ------------------------+-------------+-------------+--------------- estimated -- | -- | -- |

Aquí, enp0s3
es el nombre de mi tarjeta de red. Puede encontrar el nombre de su tarjeta de red usando "ip addr"
comando.
En FreeBSD , el nombre de la tarjeta de red es em0
. Para ver su ancho de banda, simplemente ejecute:
# vnstat -i em0
Salida de muestra:
Database updated: 2019-09-09 16:40:00 em0 since 2019-09-09 rx: 606.84 KiB tx: 56.12 KiB total: 662.96 KiB monthly rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- 2019-09 606.84 KiB | 56.12 KiB | 662.96 KiB | 7 bit/s ------------------------+-------------+-------------+--------------- estimated -- | -- | -- | daily rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- today 606.84 KiB | 56.12 KiB | 662.96 KiB | 90 bit/s ------------------------+-------------+-------------+--------------- estimated 873 KiB | 80 KiB | 953 KiB

Ver el uso de ancho de banda por hora
Mostremos los resultados del tráfico de red por hora. Para hacerlo, ejecute:
$ vnstat -h
Salida de muestra:
enp0s3 09:46 ^ r | r r | r r | r r | r r r | rt rt r | rt rt r | rt rt rt | rt rt rt | r rt rt rt -+---------------------------------------------------------------------------> | 10 11 12 13 14 15 16 17 18 19 20 21 22 23 00 01 02 03 04 05 06 07 08 09 h rx (KiB) tx (KiB) ][ h rx (KiB) tx (KiB) ][ h rx (KiB) tx (KiB) 10 0 0 ][ 18 0 0 ][ 02 0 0 11 0 0 ][ 19 0 0 ][ 03 0 0 12 0 0 ][ 20 0 0 ][ 04 0 0 13 0 0 ][ 21 0 0 ][ 05 0 0 14 0 0 ][ 22 0 0 ][ 06 12 7 15 0 0 ][ 23 0 0 ][ 07 86 48 16 0 0 ][ 00 0 0 ][ 08 88 45 17 0 0 ][ 01 0 0 ][ 09 59 32

Si tiene varias interfaces, use -i parámetro para ver el tráfico de red por hora de una tarjeta específica como se muestra a continuación.
$ vnstat -h -i enp0s8
Lectura sugerida:
- Cómo limitar el ancho de banda de la red en Linux usando Wondershaper
Ver el uso diario de ancho de banda
Usa '-d'
marca para mostrar el tráfico de red de la interfaz de red predeterminada por día.
$ vnstat -d
Salida de muestra:
enp0s3 / daily day rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- 09/09/2019 258 KiB | 138 KiB | 396 KiB | 0.09 kbit/s ------------------------+-------------+-------------+--------------- estimated -- | -- | -- |
Ver el uso de ancho de banda semanal
$ vnstat -w
Salida de muestra:
enp0s3 / weekly rx | tx | total | avg. rate ---------------------------+-------------+-------------+--------------- last 7 days 258 KiB | 138 KiB | 396 KiB | 0.00 kbit/s current week 258 KiB | 138 KiB | 396 KiB | 0.09 kbit/s ---------------------------+-------------+-------------+--------------- estimated -- | -- | -- |
Ver el uso mensual de ancho de banda
Para ver el uso mensual de una tarjeta de interfaz de red, use '-m'
cambiar.
$ vnstat -m
Salida de muestra:
enp0s3 / monthly month rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- Sep '19 258 KiB | 138 KiB | 396 KiB | 0.00 kbit/s ------------------------+-------------+-------------+--------------- estimated -- | -- | -- |
Mostrar el uso de ancho de banda de los últimos diez días
Para mostrar el uso de la red de los últimos diez días, use '-t'
bandera.
$ vnstat -t
Salida de muestra:
enp0s3 / top 10 # day rx | tx | total | avg. rate -----------------------------+-------------+-------------+--------------- no data available -----------------------------+-------------+-------------+---------------
No muestra ningún dato de los diez días principales porque instalé Vnstat hoy.
Lectura sugerida:
- Instalar la herramienta de supervisión del rendimiento de NetData en Linux
Ver el uso de ancho de banda de un tiempo particular
También podemos ver el uso del ancho de banda en un momento determinado.
Para mostrar el uso de ancho de banda de los últimos diez segundos, ejecute:
$ vnstat -i enp0s3 -tr 10
Salida de muestra:
7 packets sampled in 10 seconds Traffic average for enp0s3 rx 0.28 kbit/s 0 packets/s tx 0.14 kbit/s 0 packets/s
Ver el uso de ancho de banda en vivo
Para comenzar a monitorear en vivo el uso de una tarjeta de interfaz en particular, ejecute:
$ vnstat -i enp0s3 -l
Salida de muestra:
Monitoring enp0s3... (press CTRL-C to stop) rx: 0 kbit/s 0 p/s tx: 0 kbit/s 0 p/s

Para detener el monitoreo en vivo, presione CTRL-C
.
Para obtener más detalles, consulte las páginas man:
$ man vnstat
Conclusión
VnStat es una herramienta práctica y útil para monitorear su uso de Internet o el tráfico de red para una o varias interfaces de red. En caso de que se esté preguntando cuánto ancho de banda está consumiendo diariamente/mensualmente, puede usar esta herramienta para averiguarlo sin la ayuda de su proveedor de servicios de Internet o usando herramientas de terceros.