1) 明确目标:比较台北/台中/高雄等不同机房的延迟与丢包率;2) 选择机器:至少在每个机房各准备一台具有台湾公网IP的VPS或云主机;3) 权限与系统:确保有root/管理员权限,系统建议使用Ubuntu/Debian/CentOS。小分段:a) 记录机房名、IP、带宽套餐;b) 确定测试时间窗口(避免高峰影响)。
2) Linux 安装常用工具示例(Debian/Ubuntu):sudo apt update && sudo apt install -y iperf3 mtr hping3 traceroute tcpdump;CentOS 使用 yum/dnf。小分段:a) 确认防火墙开放对应端口(iperf3 默认 5201);b) 禁止主机做大流量测试前的带宽限制策略。
3) 在测试机上运行:ping -c 100 -s 64 <目标IP>(100 次,64 字节)。小分段:a) 用不同包大小测试:-s 64, 512, 1400;b) 记录丢包率与平均/最小/最大延迟。示例解析:packet loss 0% 表示链路稳定,>1% 开始影响交互性,>5% 即需排查路由或链路问题。
4) 使用 mtr 进行综合路由与丢包查看:mtr -r -c 100 <目标IP>(生成 100 次报告)。小分段:a) 观察哪一跳出现丢包(常见最后一跳丢包并不代表中间路由问题);b) 用 traceroute -T -p 80 <目标> 对比 TCP 路由差异。
5) 在测试端启动服务端:iperf3 -s;在另一端运行客户端:iperf3 -c
6) 使用 hping3 发送定制包以检测防火墙或策略干预:hping3 -S -p 80 --count 1000 <目标>(TCP SYN);小分段:a) 使用 --icmp 测试 ICMP 丢包;b) 分析是否有中间设备丢弃特定类型包(如 ICMP 被限速)。
7) 简易脚本(Linux bash)示例:for i in {1..10}; do date +%s, >> log.csv; ping -c 20 -q
8) 指标说明:平均延迟(avg)、丢包率(% packet loss)、抖动(jitter)、路径稳定性(mtr 中的连续丢包);小分段:a) 对比同一时段不同机房 avg 和丢包率,>20ms 差异视为显著;b) 丢包集中在某一跳则上报给机房运维。
9) 避免误判:测试时关闭不必要服务,确保 CPU/磁盘/带宽不是瓶颈;小分段:a) 在不同时间、不同包大小重复测试以排除偶发性峰值;b) 若需要可结合第三方测量(如 RIPE Atlas、speedtest 服务器)做对照。
10) 答:先用 mtr/traceroute 定位丢包跳点,若丢包从机房出口(最后一跳)开始且持续,倾向机房或上游链路问题;若仅 ICMP 丢包而 TCP 正常,可能是防火墙或ICMP限速;同时用 iperf3 UDP 检查真实业务丢包率以确认。
11) 答:检查服务器/客户端 CPU 使用和网络队列(ethtool -S、ifconfig),确认没有速率限制或流量整形;尝试调整并发流数(-P)和窗口大小(-w),并在不同时间段重复测试以排除带宽共享影响。
12) 答:部署定时脚本输出 CSV,并用 Prometheus + Grafana,或使用 Smokeping/Telegraf 连续采样;设置阈值告警(如丢包>1% 或 avg RTT 增加 50%),并将异常时的 traceroute 保存以便定位。