Ubuntu 流量监控工具 vnStat:手机热点流量统计与使用教程

为什么需要 vnStat
如果电脑经常连接手机热点,系统下载更新、浏览器后台标签页、云盘同步和容器服务都可能持续消耗移动流量。只看当前网速很难判断一个月到底用了多少流量,因此需要一个能够长期记录网络接口流量的工具。
vnStat 是 Ubuntu 上一个轻量的命令行流量统计工具。它由后台服务持续读取网络接口的收发字节数,并提供小时、每天、每月和每年的统计结果。它适合用来观察手机热点的总流量,但不负责显示具体是哪一个应用产生了流量。
安装 vnStat
在 Ubuntu 终端中执行:
sudo apt updatesudo apt install -y vnstat安装后启动后台服务,并设置为开机自动启动:
sudo systemctl enable --now vnstat检查安装和服务状态:
vnstat --versionsystemctl is-active vnstatsystemctl is-enabled vnstat如果最后两条命令分别输出 active 和 enabled,说明服务正在运行,并且重启电脑后会自动启动。
找到手机热点对应的网络接口
vnStat 统计的是网络接口,而不是“手机热点”这个连接名称。因此,使用前需要先确认 Ubuntu 当前访问互联网时使用的接口。
ip route get 1.1.1.1在输出中找到 dev 后面的名称。例如:
1.1.1.1 via 192.168.210.14 dev wlp108s0 src 192.168.210.159这里的接口就是 wlp108s0。不同电脑的名称可能不同:
- 无线网卡通常类似
wlp...; - 有线网卡通常类似
enp...; - USB 网络共享可能类似
enx...或usb0。
也可以列出 vnStat 已经发现的接口:
vnstat --iflist手机热点使用 Wi-Fi 连接时,应优先统计实际无线网卡,而不是 docker0、br-...、veth... 等容器虚拟接口。
查看流量统计
下面假设手机热点接口是 wlp108s0。如果你的接口名称不同,请替换命令中的 wlp108s0。
查看每天的流量
vnstat -i wlp108s0 -d输出中的 rx 表示接收流量,也就是下载;tx 表示发送流量,也就是上传;total 是两者之和。
查看每月的流量
vnstat -i wlp108s0 -m这个视图最适合和手机套餐的月度流量进行对照。
查看最近 24 小时的流量
vnstat -i wlp108s0 -h如果想定位“今天哪段时间突然消耗了很多流量”,可以先查看这个统计。
查看实时网速
vnstat -i wlp108s0 -l实时视图会持续显示当前的接收和发送速率。按 Ctrl+C 退出。
查看最近五分钟的统计
vnstat -i wlp108s0 -5这个视图适合在下载文件、同步云盘或播放视频时观察流量变化。
一个适合日常使用的检查流程
手机热点开启后,可以按下面的顺序检查:
# 确认当前使用的接口ip route get 1.1.1.1
# 查看本月累计流量vnstat -i wlp108s0 -m
# 观察当前是否有持续流量vnstat -i wlp108s0 -l如果发现流量增长异常,再使用 -h 或 -5 查看具体时间段。
刚安装后看不到数据怎么办
vnStat 不能补回安装之前产生的流量。刚安装完成时,查询结果可能显示 No data,这是正常现象。保持 vnstat 服务运行并产生一些网络活动,等待一段时间后再查询即可。
如果较长时间后仍然没有数据,可以检查服务日志:
systemctl status vnstatjournalctl -u vnstat --no-pager -n 50同时确认查询的接口就是当前默认路由使用的接口:
ip route get 1.1.1.1vnstat --iflist使用时的注意事项
- 手机端的套餐统计是最终依据。电脑端统计的是网络接口收发的字节数,可能因为协议开销、计费规则和统计时间不同而存在少量差异。
- 如果手机热点同时连接了其他设备,电脑上的 vnStat 只能看到这台电脑的流量,不能代表整个手机热点的总用量。
- 如果开启了 VPN,
tun0或类似虚拟接口可能显示的是 VPN 内部流量。要估算手机实际消耗的流量,应重点观察承载 VPN 数据的 Wi-Fi 或 USB 物理接口。 - vnStat 统计的是接口总流量,不能区分浏览器、下载器或云盘等具体程序。需要按进程排查时,可以另行安装并使用
nethogs。
总结
对于长期使用手机热点的 Ubuntu 电脑,vnStat 的基本使用方式可以概括为:
sudo systemctl enable --now vnstatip route get 1.1.1.1vnstat -i <热点接口> -mvnstat -i <热点接口> -l先确认正确的热点接口,再使用月度统计控制套餐用量,使用实时视图定位当前的流量变化。这样既能长期记录总流量,也能在发现异常时快速进行检查。
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!














