补充说明
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/