流量(带宽用量)是搬瓦工 VPS 套餐的核心资源之一,每月重置一次,超出配额后 VPS 会被暂停服务。本文介绍如何通过 KiwiVM 面板和系统工具精细监控流量使用情况,理解流量重置周期,以及在流量接近上限时的应对策略。

本文要点

  • 在 KiwiVM 查看本月流量用量与剩余配额
  • 流量重置周期的计算方式
  • 超出流量配额后 VPS 会发生什么
  • 使用 vnstat 精细统计每日/每月流量
  • 节流建议与流量优化技巧

在 KiwiVM 查看流量用量

登录 KiwiVM 后,在 Main controls 首页即可看到流量统计概览:

  • Data Transfer:本月已使用流量 / 月配额(单位 GB)
  • Data Transfer Reset Day:流量重置的日期(每月固定)
  • Days Until Reset:距下次重置的剩余天数

更详细的流量统计可在左侧菜单 Bandwidth Monitor 页面查看,包括每日流量折线图和每月汇总数据,方便识别流量异常峰值。

流量重置周期说明

搬瓦工的流量按自然月计费,每月重置日期固定,通常为 VPS 开通日期的对应日(如 15 日开通,则每月 15 日重置)。

情况说明
月初流量重置后从 0 开始计算
统计方向出站(上传)+ 入站(下载)双向计费
重置时区以服务器所在时区为准,通常为 UTC
超出处理VPS 被暂停,等待下月重置或手动购买流量包
剩余流量不累计到下月,每月独立计算

双向流量计费

搬瓦工对出站和入站流量都计费(双向计费)。下载文件到 VPS、上传文件到外部服务器,两个方向都消耗配额,请注意规划用量。

超出流量配额后的后果

当月流量用尽后,VPS 会自动暂停(Suspended),表现为:

  • SSH 无法连接,所有出入站流量被封锁
  • KiwiVM 面板仍可访问,状态显示为 Suspended
  • 网站、服务等全部停止对外响应
  • 等到下月流量重置日,VPS 自动恢复,或购买额外流量包立即恢复

流量耗尽前要预警

建议在流量使用达到 80% 时收到告警。可以通过定时脚本调用 KiwiVM API 查询流量,结合邮件或消息推送实现预警,避免服务突然中断。

# 通过 KiwiVM API 查询流量使用情况
curl -s "https://api.64clouds.com/v1/getServiceInfo?veid=YOUR_VPS_ID&apiKey=YOUR_API_KEY" \
  | python3 -c "import json,sys; d=json.load(sys.stdin); print(f'已用: {d[\"data_counter\"]/(1024**3):.1f} GB / 总计: {d[\"plan_monthly_data\"]/(1024**3):.0f} GB')"

使用 vnstat 精细统计流量

KiwiVM 面板提供的流量数据有一定延迟(通常 15 分钟以上),对于需要实时监控的场景,推荐在 VPS 上安装 vnstat 工具进行精细统计。

安装 vnstat

# Debian / Ubuntu
apt install -y vnstat
systemctl enable vnstat
systemctl start vnstat

# CentOS
yum install -y vnstat
systemctl enable vnstat
systemctl start vnstat

常用 vnstat 命令

# 查看接口列表
vnstat --iflist

# 查看月度流量统计(默认 eth0)
vnstat -m

# 查看每日流量统计
vnstat -d

# 查看每小时统计
vnstat -h

# 实时流量监控(每秒刷新)
vnstat -l

# 查看指定接口(如 venet0)
vnstat -i venet0 -m
vnstat 参数含义
-m按月汇总,显示总收发流量
-d按天汇总,适合查找流量异常日
-h按小时统计,定位流量高峰时段
-l实时监控,每秒刷新当前速率
--json输出 JSON 格式,便于脚本解析

vnstat 初始化需要时间

vnstat 安装后需要运行 5 分钟以上才会开始收集数据,初始显示"Not enough data"属于正常现象,第二天数据才会完整。

流量节流建议

若流量消耗过快,可考虑以下优化措施:

  • 开启 Gzip/Brotli 压缩:Web 服务器开启压缩,减少 HTTP 响应体积
  • 配置 CDN:静态资源通过 CDN 分发,减少直接从 VPS 传输的流量
  • 限制备份传输时间:将 rsync 备份安排在月末流量剩余充足时执行
  • 检查异常进程:使用 nethogsiftop 排查占用大量流量的异常进程
  • 减少日志传输:日志归档后再传输,避免频繁增量同步
# 安装 nethogs 实时查看各进程流量占用
apt install -y nethogs
nethogs eth0

# 安装 iftop 实时查看连接维度流量
apt install -y iftop
iftop -i eth0

流量监控告警脚本实战

以下是一个完整的流量监控脚本,通过 KiwiVM API 查询用量,当超过设定阈值时发送告警通知:

#!/bin/bash
# 流量预警脚本,建议通过 cron 每6小时执行一次
# 0 */6 * * * /root/bandwidth_alert.sh

VEID="YOUR_VPS_ID"
API_KEY="YOUR_API_KEY"
THRESHOLD=80  # 使用量超过80%时告警

# 获取流量数据
RESULT=$(curl -s "https://api.64clouds.com/v1/getServiceInfo?veid=${VEID}&apiKey=${API_KEY}")
USED=$(echo $RESULT | python3 -c "import json,sys; d=json.load(sys.stdin); print(d['data_counter'])")
TOTAL=$(echo $RESULT | python3 -c "import json,sys; d=json.load(sys.stdin); print(d['plan_monthly_data'])")

PERCENT=$((USED * 100 / TOTAL))
echo "当前流量使用率: ${PERCENT}%"

if [ $PERCENT -ge $THRESHOLD ]; then
    # 发送告警(此处以写入日志为例,可改为邮件或其他通知)
    echo "$(date): 流量告警!已使用 ${PERCENT}%,请及时处理" >> /var/log/bandwidth_alert.log
fi

常见高流量来源排查

当发现流量消耗异常偏高时,按照以下思路排查来源:

  • 检查是否有未知进程:使用 nethogs 实时查看每个进程的网络用量,找出异常占用进程
  • 检查日志文件:Nginx/Apache 的访问日志可以帮助识别是否有爬虫或异常请求大量消耗带宽
  • 检查定时任务crontab -l 查看是否有定期同步大文件的任务占用带宽
  • 检查 P2P 软件:某些软件(如 BitTorrent 客户端)会持续产生大量双向流量,应评估是否必要
  • 检查服务器被滥用:若 VPS 被入侵,攻击者可能用来发送大量数据,需检查异常的出站连接

使用 ss -tnp | grep ESTABLISHED 可以查看当前所有已建立的 TCP 连接及对应进程,结合 vnstat -h 确定流量高峰时段,缩小排查范围。

带宽速率限制

搬瓦工套餐标注的带宽(如 1Gbps)是端口速率上限,而非保证速率。实际传输速度受多种因素影响:网络路由质量、对端限速、TCP 拥塞控制算法等。如果发现实际速率远低于标称值,可以尝试更换 BBR 拥塞控制算法来提升 TCP 传输效率:

# 启用 BBR(需要内核版本 4.9+)
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p
# 验证是否生效
sysctl net.ipv4.tcp_congestion_control

小结

流量监控是 VPS 日常运维不可忽视的环节。通过 KiwiVM 面板掌握月度用量概览,通过 vnstat 实现精细的每日/每时统计,结合 API 脚本实现流量预警,三管齐下可以有效避免流量耗尽导致的服务中断。

常见问题

流量重置是北京时间几点?

搬瓦工流量重置以 UTC 时区计算,UTC 0 点即北京时间早上 8 点。具体重置日期在 KiwiVM 首页"Data Transfer Reset Day"显示。

流量用完了 VPS 还能访问 KiwiVM 吗?

可以,KiwiVM 控制面板不受流量配额影响,即使 VPS 因流量耗尽被暂停,仍可登录 KiwiVM 查看状态或等待重置。

双向流量是什么意思?下载文件也算流量吗?

是的,搬瓦工对出站和入站流量都计费。从外部下载文件到 VPS(入站)和从 VPS 上传文件(出站)都会消耗月度流量配额。

如何避免流量突然用完导致服务中断?

可以通过 KiwiVM API 定时查询流量使用情况,当使用量达到 80% 时触发邮件/消息告警,提前采取节流措施,并在月末关闭非必要服务。