香港CN2 VPS的网络监控,跟普通服务器不太一样。CN2线路的带宽成本高,跑超了就是真金白银的损失;香港机房又普遍是BGP多线环境,电信、联通、PCCW的流量混在一起走,不搞清楚谁在占带宽,出了问题连找谁都不知道。
单靠一个工具解决不了所有问题。iftop看实时连接、nload看总带宽趋势、vnstat记历史流量——这三个工具组合起来,刚好覆盖“实时排查、趋势观察、长期记账”三个场景。
先搞清楚三个工具各管什么
iftop 负责“实时定位”。它按连接显示带宽占用,能直接看到哪个IP、哪个端口在跑流量。排查DDoS攻击、找出异常连接、确认某个服务是否在偷跑带宽,都靠它。
nload 负责“实时概览”。它以图形化方式显示网卡的进出流量,界面直观,一眼就能看出当前带宽跑到什么水平。适合日常巡检和快速判断“现在网络忙不忙”。
vnstat 负责“长期记账”。它不抓包,只读取系统的网络接口统计信息,资源占用极低,适合在VPS上长期运行。按天、按月记录流量消耗,对于按流量计费的香港VPS来说,这是避免超支的关键工具。
三者配合的逻辑:vnstat 做底账,nload 做日常看板,iftop 做异常排查。
一、安装三个工具
香港VPS常用的Ubuntu/Debian和CentOS/Rocky系统,安装方式略有不同。
Debian/Ubuntu 系统:
sudo apt update
sudo apt install -y iftop nload vnstat
CentOS/Rocky 系统(需要先装EPEL源):
sudo yum install -y epel-release
sudo yum install -y iftop nload vnstat
装完后确认一下版本,确保iftop在1.0以上(1.0以下不支持IPv6监控):
iftop --version
nload --version
vnstat --version
二、iftop:实时连接排查
基本用法
iftop需要root权限运行,因为要抓取网卡数据包:
sudo iftop -i eth0 -nNP
参数解释:
-i eth0:指定监控的网卡。香港VPS的网卡名可能是eth0、ens3或enp0s3,用ip addr确认一下-n:不解析主机名,直接显示IP。在香港BGP多线环境下,反向DNS解析不仅慢,还可能被污染,直接看IP更可靠-N:显示端口号而不是服务名,排查时更精确-P:显示端口信息,方便识别流量走的是HTTP还是SSH
界面怎么读
iftop的运行界面分三部分:
顶部刻度条:显示带宽范围。默认是自动调整的,如果流量很小,刻度会缩得很小,看不出实际占用。可以按L键手动切换刻度,或者用-m 100M参数直接锁定上限为100Mbps。
中间连接列表:这是核心区域。每一行代表一个连接,左侧是源IP,右侧是目标IP。=>表示发送数据,<=表示接收数据。最右侧的三列数字是过去2秒、10秒、40秒的平均流量——判断流量是“持续跑”还是“突然飙”,看这三列就够了。
底部汇总:TX是发送总量,RX是接收总量,cum是累计值,peak是峰值,rates是对应时间窗口的平均值。
香港CN2场景的实用技巧
1. 排查晚高峰异常:CN2线路晚高峰容易拥堵,如果发现某个IP的连接在20:00后持续跑高带宽,可能是邻居在占用共享资源。按T键可以切换显示模式,把流量按发送或接收排序,快速锁定“大头”。
2. 过滤特定流量:如果只想看某个端口的流量,按l键输入过滤条件,比如port 443只看HTTPS流量。排查网站被CC攻击时特别有用。
3. 保存日志:iftop的交互界面没法直接导出,但可以用文本模式重定向:
sudo iftop -t -s 60 -i eth0 > /var/log/iftop_$(date +%H%M).log
-t是纯文本模式,-s 60表示跑60秒后自动退出。定时任务里配合cron,可以定期抓一段流量快照。
三、nload:实时带宽概览
基本用法
nload eth0
界面很直观:上半部分是入站流量,下半部分是出站流量。绿色柱状图代表当前速率,旁边有数字显示实时值、平均值、最小值和最大值。
常用参数
# 只看入站流量
nload -t in eth0
# 只看出站流量
nload -t out eth0
# 设置刷新间隔为2秒(默认0.5秒,刷新太快反而看不清趋势)
nload -t 2000 eth0
# 同时监控多个网卡(香港VPS可能有多块网卡)
nload eth0 eth1
-t参数的单位是毫秒,默认500毫秒。设置太短(比如100毫秒)会导致计算不准确,界面也会闪烁。
香港场景的判读经验
香港VPS的带宽通常是共享1Gbps架构。如果nload显示持续超过300Mbps,说明你已经在占用相当比例的共享带宽了,晚高峰时可能被邻居挤占。如果发现流量长期在某个数值附近“卡住”,比如永远不超过100Mbps,可能是商家做了QoS限速。
nload的图形化显示适合快速巡检——登录服务器后跑一眼,看看当前带宽水平。但它不显示具体是哪个连接在跑,要定位问题还得回到iftop。
四、vnstat:长期流量记账
初始化配置
vnstat安装后需要先初始化数据库,告诉它监控哪个网卡:
sudo vnstat -u -i eth0
如果网卡名不是eth0,在/etc/vnstat.conf里修改Interface参数,或者用--add添加。
启动服务并设置开机自启:
sudo systemctl start vnstat
sudo systemctl enable vnstat
查看流量报告
vnstat的命令行查询很方便:
# 查看实时流量
vnstat -l
# 按天查看
vnstat -d
# 按月查看
vnstat -m
# 按小时查看(排查某个时段异常时很有用)
vnstat -h
输出里会显示每个时间段的rx(接收)、tx(发送)和total(总计)流量。对于香港按流量计费的VPS,重点看月报,确认是否接近套餐上限。
生成可视化图表
命令行看数字不够直观的话,用vnstati生成PNG图表:
vnstati -s -i eth0 -o /var/www/html/traffic.png
-s是summary模式,生成的图片可以直接通过网站访问。配合cron每天生成一次,就能有一个简单的流量看板。
香港场景的实用配置
时区对齐:香港VPS的系统时区可能是UTC,但你的账单和业务习惯都是香港时间(HKT)。在/etc/vnstat.conf里设置TimeSyncWait参数,或者用--locale指定时区,避免流量统计的时间对不上。
多IP分别统计:如果VPS绑定了多个IP(站群场景常见),vnstat默认只统计整个网卡的流量。可以通过--create-iface参数为每个IP单独建数据库,但配置稍复杂,适合有精细化计费需求的场景。
五、三个工具的组合使用流程
日常运维不需要同时开三个工具。按场景选择:
场景一:日常巡检
登录服务器,先跑vnstat -d看一眼今天跑了多少流量,再用nload eth0扫一眼当前带宽水平。30秒完成,心里有数。
场景二:怀疑带宽异常
如果nload显示带宽很高但业务量没涨,用iftop -i eth0 -nNP定位。按T键切换排序模式,找出占用带宽最大的连接。如果是陌生IP在跑大量数据,可能是被攻击或者某个服务配置错误。
场景三:月底流量对账
用vnstat -m查看本月总流量,跟VPS商家的计费面板对比。如果两边数据差异很大,用vnstat -h按小时排查,找出异常时段,再用iftop的日志回溯那个时段的连接情况。
场景四:排查晚高峰卡顿
CN2 VPS晚高峰卡顿,可能是带宽跑满,也可能是线路本身拥堵。用nload看带宽是否接近上限——如果带宽没跑满但延迟还是高,问题在线路不在服务器。用mtr测路由质量,比在监控工具里折腾更有效。
总结:香港CN2 VPS的流量监控,核心就三个工具:iftop看实时连接,nload看带宽趋势,vnstat记历史账本。安装配置都不复杂,难的是知道什么场景用哪个、怎么看数据、以及什么时候该停止看监控去查线路本身。
对于CN2 VPS,还有一个额外的价值:监控数据是你跟商家沟通的证据。如果发现带宽长期跑不满标称值,或者晚高峰出现规律性掉速,把vnstat的历史曲线和iftop的实时截图整理好,比空口说“我的服务器很卡”有说服力得多。
推荐文章