1. 准备与确认测试环境
- 准备两端:测试客户端(位于国内,直连运营商或合适出口)与越南 CN2 VPS(获取公网 IPv4/IPv6 和 root 登录)。
- 检查 VPS 网络:ssh 登录后运行 ip addr; ethtool eth0 查看链路速率; 确认无流量限制或防火墙影响(iptables -L)。
2. 必备工具安装
- 在两端安装 iperf3、mtr、tcpdump、traceroute、wget、speedtest-cli(可选)。命令示例(Debian/Ubuntu):apt update && apt install -y iperf3 mtr-tiny tcpdump traceroute。
3. 验证路由与直连属性
- 使用 traceroute 或 mtr 确认经过运营商为 CN2 路径:mtr -rwzbc 100
;查看中间跳数与 AS 信息(可在 each hop 的 IP 到 whois 查询 AS)。
- 如果怀疑非 CN2,可使用 BGP Looking Glass 或 ping 测试不同目的地对比。
4. 测试带宽峰值(TCP)——iperf3 标准流程
- 在 VPS 上启动服务端:iperf3 -s --logfile /root/iperf3_server.log &
- 在客户端运行多流测试以逼近带宽峰值(例如 4 个并发流、60 秒):iperf3 -c -P 4 -t 60 -i 5
- 若要测试更高并发或窗口调优:iperf3 -c -P 8 -t 120 -w 256K。记录“Transfer”和“Bandwidth”字段以及重传(retransmits)。重传高说明丢包或拥塞。
5. 测试抖动(Jitter)——iperf3 UDP 测试与 ping 分析
- iperf3 UDP:在服务端同上,在客户端发送指定带宽(例如 50M)并观察 jitter 与丢包:iperf3 -c -u -b 50M -t 60 -i 5。结果会直接给出 jitter(ms) 与丢包百分比。
- 连续 RTT 测试:ping -i 0.2 -c 500 ,把输出 RTT 值导出并计算平均、最小、最大、标准差(抖动近似)。可用 awk/python 简单统计。
6. 捕获与深度分析
- 在任一端用 tcpdump 抓包:tcpdump -i eth0 host -w /root/capture.pcap -s 0。用 Wireshark 打开,分析 UDP 时间戳与 RTT 分布、重传与 TCP 窗口变化。
- 注意时钟同步,抓两端包比对时使用 ntp 同步减少误差。
7. 常见参数与判读标准
- 带宽峰值:接近 VPS 套餐标称值且重传低(TCP retransmits ≈ 0~少许)视为良好。
- 抖动:jitter < 10ms 属优;10–30ms 可接受;>30ms 则影响实时应用。UDP 丢包 >1% 即影响语音视频。
8. 优化建议与复测
- 若带宽低或抖动大:检查 VPS 网卡速率、关闭或调整 offloading(ethtool -K eth0 tx off rx off),检查本地出口带宽、避免同网段大流量并发测试。
- 复测建议:在不同时间(高峰/非高峰)、不同并发流数、多次运行取平均。
9. 故障定位流程
- 若发现丢包/高抖动:先 mtr 定位是哪一跳开始恶化;再针对该跳运营商寻求上游;同时提交抓包与 mtr 给 VPS 提供商排查。
- 提交工单时包含:测试时间、iperf3 日志、mtr/traceroute 输出、tcpdump pcap 文件。
问:如何确认我测到的路径是真正的 CN2 直连?
答:通过 mtr/traceroute 观察跳数与中间 IP,结合 whois/BGP 信息确认经过的 AS(如中国电信 CN2 常见为 AS4134/AS4837 等相关链路),以及使用运营商提供的 Looking Glass 进一步核实。
问:用 iperf3 测试时为什么 TCP 带宽低但 UDP 能跑满?
答:可能是 TCP 受限于丢包导致拥塞控制降速或 MSS/窗口设置不足;也可能是网络中间设备对 TCP 流有限速。检查 retransmits、调整窗口 -w 并抓包分析。
问:我希望实时监控抖动,有推荐的轻量方法吗?
答:可用连续 ping(间隔 200ms)并用 awk 统计 RTT 标准差,或部署简单的脚本定时运行 iperf3 UDP 短测并上报到 Prometheus/Grafana 进行可视化告警。
来源:从网络直连角度评估越南cn2 vps的带宽峰值与抖动表现