1. 简要说明与准备工作
- 目标:在日本CN2双线路由VPS上实现实时监控与流量限制,避免超额和丢包影响服务。
- 前提:Debian/Ubuntu/CentOS基础,root或sudo权限,打开SSH连接。
- 准备命令(Debian/Ubuntu):sudo apt update && sudo apt install -y vnstat iftop iproute2 iptables iperf3 curl
2. 安装并配置vnStat用于长期流量统计
- 安装:sudo apt install -y vnstat vnstatd
- 初始化数据库(假设网卡为eth0):sudo vnstat -u -i eth0 && sudo systemctl enable --now vnstat
- 查看与导出:vnstat -m (月流量);vnstat -d (日流量),可用 crontab 每天导出:0 0 * * * vnstat --dumpdb > /var/log/vnstat-$(date +\%F).db
3. 实时流量查看工具:iftop / nload / bmon
- 安装:sudo apt install -y iftop nload bmon
- 使用示例:sudo iftop -i eth0(观察实时连接与吞吐);sudo nload eth0(带图形的实时速度);bmon 可显示分接口速率与历史。
- 小技巧:使用 ssh -t 连接并运行 iftop,把输出发送到日志: sudo iftop -i eth0 -t > /root/iftop.log &
4. 延迟与丢包检测:mtr 与 ping
- 安装:sudo apt install -y mtr-tiny
- 测试到日本节点(例如 tokyo):mtr -rw -c 100 8.8.8.8 或 mtr -rw 103.27.7.66(替换为运营商提供的测试IP)。
- 分析:看最后一跳的Loss%和Latency均值,若丢包多,记录时间点并联系商家或切换线路。
5. 带宽基准与双向测速:iperf3 与 speedtest-cli
- 安装:sudo apt install -y iperf3 python3-pip && pip3 install speedtest-cli
- 使用方法:在测试服务器上运行 iperf3 -s;在VPS上运行 iperf3 -c SERVER_IP -P 4 -t 30(多线程),记录上下行带宽。
- speedtest:speedtest-cli --server SERVER_ID 或 speedtest-cli 测试到最近的测试点。
6. 简单流量限制:wondershaper 与 tc(高级)
- wondershaper(快速):sudo apt install -y wondershaper;设置:sudo wondershaper eth0 102400 51200(上行kbps/下行kbps);清除:sudo wondershaper clear eth0。
- tc(精细化):基础HTB例子:
sudo tc qdisc add dev eth0 root handle 1: htb default 30
sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbit
sudo tc class add dev eth0 parent 1:1 classid 1:10 htb rate 80mbit ceil 100mbit
sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 80 0xffff flowid 1:10
- 说明:通过 class 和 filter 可以按端口/IP划分带宽,配合 iptables 标记也可对用户分流量限制。
7. 限制入站(Ingress)使用 ifb 与 tc
- 创建虚拟接口:sudo modprobe ifb numifbs=1 && sudo ip link add ifb0 type ifb && sudo ip link set dev ifb0 up
- 重定向 ingress:sudo tc qdisc add dev eth0 ingress && sudo tc filter add dev eth0 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0
- 然后在 ifb0 上用 tc 做 egress shaping(同上HTB)。这是限制对端发来流量的必要步骤。
8. 可视化监控与告警:Netdata / Prometheus+Grafana
- Netdata 安装一键:bash <(curl -Ss https://my-netdata.io/kickstart.sh);打开防火墙端口或通过代理访问。
- Prometheus:安装 node_exporter(暴露指标),Prometheus 抓取,Grafana 做仪表板。关键项:带宽、丢包、负载、连接数。
- 告警:在Grafana或Prometheus Alertmanager中配置阈值(例如丢包>5%或带宽>95%)并通过邮件/Telegram告警。
9. 常见自动化脚本与日志策略
- 建议脚本:启动时加载 tc 策略脚本 /usr/local/bin/tc-setup.sh,crontab 定期执行 vnstat 导出并清理临时日志。
- 日志策略:/var/log/tc-traffic.log 记录限速动作,logrotate 定期切割。示例 crontab:*/5 * * * * /usr/local/bin/check-traffic.sh >> /var/log/tc-traffic.log 2>&1
10. 问:日本CN2双线VPS最容易遇到的网络问题是什么?
问:日本CN2双线VPS最容易遇到的网络问题是什么?
答:常见问题包括高峰期延迟波动、跨境丢包和单向拥塞。建议用mtr定位丢包跳点,用vnStat长期观察流量峰值,再用tc或wondershaper做临时限速并联系IDC排查。
11. 问:如何在不影响正常业务的情况下逐步启用限速?
问:如何在不影响正常业务的情况下逐步启用限速?
答:先在测试网卡或非高峰时间用wondershaper做全局试验,再用tc做对小范围IP/端口的精细限速,观察30分钟到数小时指标,确认无副作用后再推广。
12. 问:新手快速上手的推荐工具组合是什么?
问:新手快速上手的推荐工具组合是什么?
答:推荐组合:vnStat(长期统计)+iftop/nload(实时查看)+iperf3(带宽基准)+wondershaper(快速限速)+Netdata(可视化),熟练后逐步学习tc与ifb实现精细控制。
来源:新手必读vps日本双线cn2网络监控与流量控制实用工具推荐