Cómo registrar y monitorizar el consumo de tráfico con vnStat
vnStat es una herramienta de consola ligera que guarda un historial del tráfico de red en Linux. Un servicio en segundo plano, vnstatd, lee los contadores de las interfaces del kernel y los guarda en una pequeña base de datos. Después puede ver el tráfico por horas, días, meses y años, o seguir la velocidad de transferencia actual en tiempo real. vnStat no captura paquetes, por lo que su sobrecarga es muy baja. Muestra cuánto tráfico ha pasado por cada interfaz, pero no qué direcciones IP, puertos o conexiones lo han generado.
Esta guía muestra cómo instalar vnStat desde el repositorio o desde el código fuente, y cómo ver las estadísticas de tráfico. vnStat resulta útil en cualquier servidor donde el tráfico esté limitado o se facture, por ejemplo en un VPS Linux o un servidor dedicado de INTROSERV.
Instalar vnStat desde el repositorio
Conéctese a su servidor por SSH. Para más detalles, consulte Conexión por SSH.
Ubuntu y Debian
vnStat está disponible en los repositorios estándar. Instálelo:
sudo apt update sudo apt install -y vnstat
La instalación inicia el servicio vnstat y lo habilita en el arranque. Compruebe que se está ejecutando:
sudo systemctl status vnstat
La salida debe mostrar active (running). Si el servicio no se está ejecutando, habilítelo e inícielo con sudo systemctl enable --now vnstat.

AlmaLinux y Rocky Linux
vnStat está disponible en el repositorio EPEL. Habilite EPEL e instale vnStat:
sudo dnf install -y epel-release sudo dnf install -y vnstat
Habilite e inicie el servicio:
sudo systemctl enable vnstat && sudo systemctl start vnstat
Compruebe que se está ejecutando:
sudo systemctl status vnstat
Instalar vnStat desde el código fuente
Compile vnStat desde el código fuente si el paquete no está disponible para su distribución o si necesita la última versión.
Si vnStat ya está instalado desde el repositorio, elimine primero el paquete: sudo apt remove -y vnstat en Ubuntu y Debian o sudo dnf remove -y vnstat en AlmaLinux y Rocky Linux. Ambas instalaciones utilizan el mismo archivo de configuración, la misma base de datos y el mismo nombre de servicio, por lo que mantenerlas juntas provoca conflictos.
Instale las dependencias de compilación. En Ubuntu y Debian:
sudo apt update && sudo apt install -y build-essential libsqlite3-dev wget
En AlmaLinux y Rocky Linux:
sudo dnf group install -y "Development Tools" sudo dnf install -y sqlite-devel wget
Descargue y descomprima la última versión:
wget https://humdi.net/vnstat/vnstat-latest.tar.gz tar -xf vnstat-latest.tar.gz cd vnstat-*/
El archivo se descomprime en un directorio cuyo nombre incluye el número de versión, por ejemplo vnstat-2.13. El comodín vnstat-*/ permite entrar en él sin escribir el número de versión.
Compile e instale vnStat:
./configure --prefix=/usr --sysconfdir=/etc && make && sudo make install
La opción --prefix=/usr instala los programas en /usr/bin y /usr/sbin, y --sysconfdir=/etc coloca el archivo de configuración en /etc/vnstat.conf.
En AlmaLinux y Rocky Linux con SELinux habilitado, si vnStat se instaló antes desde el repositorio, restaure primero las etiquetas SELinux del directorio de la base de datos. De lo contrario, el servicio no se inicia y muestra un error Permission denied:
sudo restorecon -Rv /var/lib/vnstat
Instale el servicio de systemd, habilítelo e inícielo:
sudo cp -v examples/systemd/vnstat.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable --now vnstat
Compruebe la versión y el estado del servicio:
vnstat --version sudo systemctl status vnstat
Encontrar la interfaz de red
De forma predeterminada, vnStat añade a su base de datos todas las interfaces de red del servidor, excepto la interfaz de loopback. Para ver las interfaces almacenadas actualmente en la base de datos, ejecute:
vnstat --dbiflist
También puede listar las interfaces con ip a. Los ejemplos siguientes usan la interfaz ens3. Sustitúyala por el nombre de su interfaz, por ejemplo eth0 o enp1s0.
De forma predeterminada, vnStat guarda datos nuevos en la base de datos cada 5 minutos. Justo después de la instalación, el comando vnstat indica que todavía no hay datos, por ejemplo Not enough data available yet o No data. Espere unos minutos y vuelva a ejecutar el comando.
Ver las estadísticas de tráfico
Ejecute vnstat sin opciones para ver un resumen de todas las interfaces, que incluye el tráfico del día y del mes en curso y una estimación para el final de cada periodo.
vnstat
En todos los informes, rx es el tráfico entrante, tx es el tráfico saliente y total es su suma.
Tráfico por hora
Para ver las 12 últimas entradas por hora, ejecute:
vnstat -i ens3 -h --limit 12

Tráfico por día
Para ver las 2 últimas entradas diarias, ejecute:
vnstat -i ens3 -d --limit 2
Sin --limit, el número de entradas mostradas lo determina el parámetro ListDays de /etc/vnstat.conf, 30 de forma predeterminada. Limita solo la salida, no los datos almacenados en la base de datos.
Tráfico por mes
vnstat -i ens3 -m

Tráfico por año
vnstat -i ens3 -y
Tráfico en tiempo real
Para ver la velocidad de transferencia actual, ejecute:
vnstat -i ens3 -l
La velocidad se actualiza hasta que pulse Ctrl+C. Si el comando se ejecutó durante más de 10 segundos, vnStat muestra después un resumen de ese tiempo.

Tráfico durante un número de segundos determinado
Para medir la velocidad media de tráfico durante un periodo, indique el periodo en segundos. Por ejemplo, 20 segundos:
vnstat -i ens3 -tr 20
Sin número, la medición dura 5 segundos. El resultado se muestra al terminar el tiempo.
Gráfico de las últimas 24 horas
Para mostrar el tráfico de las últimas 24 horas como un gráfico de texto, ejecute:
vnstat -i ens3 -hg

Para procesar las estadísticas en un script, utilice la opción --json o --oneline. Por ejemplo, vnstat -i ens3 --json d exporta las estadísticas diarias en formato JSON.
Establecer la interfaz predeterminada
Si el servidor tiene varias interfaces y normalmente consulta una de ellas, establézcala como predeterminada en el archivo de configuración /etc/vnstat.conf. Abra el archivo:
sudo nano /etc/vnstat.conf
En AlmaLinux y Rocky Linux, nano no viene instalado de forma predeterminada. Instálelo con sudo dnf install -y nano o utilice vi.
Busque la línea Interface, elimine el punto y coma del principio e introduzca el nombre de su interfaz:
Interface "ens3"
Guarde el archivo. Ahora vnstat muestra esta interfaz cuando lo ejecuta sin la opción -i, por ejemplo vnstat -d. El servicio vnstat sigue supervisando todas las interfaces.
Para ver la lista completa de opciones, ejecute vnstat --longhelp o consulte man vnstat.