Linux 命令速查
网络 man vnstat

vnstat

基于内核计数的网络流量统计工具

返回

补充说明

vnstat 是一个轻量的网络流量监控程序,从 /proc/net/dev 或 sysfs 读取接口计数,按小时、日、月保存历史数据到数据库。它本身不抓包,因此对系统性能影响很小,适合长期统计网卡收发流量。

使用前需要初始化数据库并运行守护进程 vnstatd。多数发行版提供 vnstat 服务,可用 systemctl enable --now vnstat 启用。数据库通常位于 /var/lib/vnstat/,每个接口一个文件;删除数据库会丢失历史统计。

vnstat -l 实时模式需要 root 权限,-u 可强制更新当前统计。注意统计值来自接口计数器,容器、虚拟网卡或重启后的计数变化可能影响结果;计费场景应以服务商账单为准。

语法

vnstat [选项]

选项

  • -i, --iface 接口:指定网络接口,如 eth0。
  • -s, --short:显示简要汇总。
  • -h, --hours:按小时显示流量。
  • -d, --days:按天显示流量。
  • -m, --months:按月显示流量。
  • -t, --top:显示流量最高的日期。
  • -l, --live:实时监控,需要 root。
  • -u, --update:更新数据库后输出。
  • --json:以 JSON 输出,便于脚本处理。
  • --dbdir 目录:指定数据库目录。

实例

# 启用并启动统计服务
sudo systemctl enable --now vnstat

# 查看默认接口的简要流量
vnstat

# 指定接口查看每日统计
vnstat -i eth0 -d

# 查看按月统计
vnstat -i eth0 -m

# 实时查看流量变化(Ctrl-C 退出)
sudo vnstat -l -i eth0

# 输出 JSON 供监控系统采集
vnstat --json -i eth0

# 查看数据库文件位置
ls -l /var/lib/vnstat/

参考链接