VPS流量监控用什么工具

不少VPS套餐带月流量限制,超了轻则限速重则额外收费,但服务商自己的面板经常只给一个模糊的进度条,具体每天用了多少、哪天用得特别猛,压根查不到。vnstat能把这块补上,装一次之后随时能查详细的流量记录。

安装

1
apt-get install vnstat -y

CentOS系统用yum,如果提示找不到包,先装epel源:

1
yum install epel-release -y && yum install -y vnstat

找到要监控的网卡名字

1
ifconfig -a

如果系统没有ifconfig命令,装一下net-tools或者直接用ip a代替。常见的网卡名是eth0,也有些VPS是ens5这类名字,装完vnstat如果发现数据一直是空的,多半是网卡名没对上,改一下/etc/vnstat.confInterface后面的值就行。

查看流量数据

装好之后不用额外配置就能看:

1
vnstat -d

看每日流量明细。想看每月汇总:

1
vnstat -m

需要实时监控当前网速,用:

1
vnstat -l

让统计周期对上服务商的计费日期

vnstat默认按每月1号重新计算流量,但服务商的流量重置日不一定是1号,对不上的话月流量统计会跟服务商后台显示的对不上。改一下配置文件:

1
vim /etc/vnstat.conf

找到MonthRotate这一项,改成服务商实际的流量重置日期(比如服务商是每月15号重置,就填15)。

顺带一提

vnstat不需要root权限也能跑,因为它读的是/proc文件系统里的数据,不是直接抓网络包,所以对系统性能影响很小,常年挂着也不用担心占用太多资源。

想要接近实时的流量预警,还可以这样用

单纯查历史数据只能"事后知道超没超",如果想在流量快用完之前提前收到提醒,可以写个简单的定时脚本,每天跑一次vnstat -m把当月流量读出来,跟服务商给的限额比较,超过某个百分比(比如80%)就发个通知(邮件、Telegram机器人都行)。这个思路配合vnstat已有的数据,不用额外抓包分析,实现起来比想象中简单,很多"流量预警脚本"本质上就是在做这件事。

如果这台VPS本身已经装了VPS一键系统管理那类脚本,流量监控功能可能已经集成在里面了,不用重复装vnstat;如果流量之外还想顺便看看这台VPS的带宽实际跑得怎么样,可以配合VPS网络测速用什么工具最好一起用。