本文目录导读:

- 方法一:使用
ping命令(最基础、最常见) - 方法二:使用
tracert/traceroute定位丢包节点 - 方法三:使用
iperf3(专业TCP/UDP压力测试) - 方法四:使用
mtr(Linux/macOS)或WinMTR(Windows) - 方法五:使用在线/图形化工具
- 测试时的注意事项(重要)
- 总结推荐
测试丢包率通常需要模拟网络通信,观察数据包是否成功到达目的地,以下是使用不同工具和场景进行丢包测试的方法:
使用 ping 命令(最基础、最常见)
这是测试丢包最直接的方法,适用于测试到特定IP或域名的连通性和稳定性。
Windows/macOS/Linux 通用:
ping -n 100 8.8.8.8 # Windows:发送100个包 ping -c 100 8.8.8.8 # macOS/Linux:发送100个包
如何判断丢包:
- 结果中会显示类似
Lost = 0 (0% loss)或0% packet loss的字样。 - 如果显示
Lost = 5 (5% loss),则表示有5%的数据包丢失。
优点: 无需安装,系统自带。
缺点: 只能测试ICMP协议,某些路由器或防火墙会屏蔽ICMP,导致误判。
使用 tracert / traceroute 定位丢包节点
ping 发现丢包,可以用此工具找出丢包发生在哪一跳(哪个路由器)。
tracert 8.8.8.8 # Windows traceroute 8.8.8.8 # macOS/Linux
判断方法:
- 如果某一跳显示
Request timed out或 ,而后续跳数正常,可能只是该节点不响应ICMP,不一定丢包。 - 如果从某一跳开始,后续所有节点都超时,则丢包很可能发生在那一条链路上。
使用 iperf3(专业TCP/UDP压力测试)
适合测试局域网或服务器之间的真实带宽和丢包率(尤其是UDP)。
步骤:
- 在服务器端启动:
iperf3 -s
- 在客户端启动UDP测试(指定带宽):
iperf3 -c 服务器IP -u -b 100M -t 30 # -u:使用UDP协议,-b 100M:以100Mbps速率发送,-t 30:测试30秒
结果解读:
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 3] 0.00-30.00 sec 350 MBytes 98.0 Mbps 0.123 ms 0/245600 (0%) # 0%丢包
[ 3] 0.00-30.00 sec 350 MBytes 98.0 Mbps 0.456 ms 1250/245600 (0.51%) # 0.51%丢包
- 重点关注
Lost/Total列,括号内即为丢包率。 - 此方法适合模拟实际业务流量,比ping更准确。
使用 mtr(Linux/macOS)或 WinMTR(Windows)
它结合了 ping 和 traceroute 的功能,可以持续监测每一跳的丢包率。
Linux/macOS:
mtr -r -c 100 8.8.8.8 # -r:报告模式,-c:发送100个包
Windows: 下载 WinMTR 免费工具,输入目标IP,点击Start。
结果示例:
| Host | Loss% | Snt | Last | Avg | Best | Wrst | StDev |
| 192.168.1.1 | 0.0% | 100 | 1.2 | 1.1 | 0.8 | 3.5 | 0.4 |
| 10.0.0.1 | 0.0% | 100 | 2.3 | 2.5 | 1.9 | 8.0 | 1.1 |
| 172.16.0.1 | 5.0% | 100 | 15.2 | 15.8 | 14.9 | 18.0 | 0.8 |
| 8.8.8.8 | 4.0% | 100 | 18.1 | 18.5 | 17.9 | 20.1 | 0.9 |
- 重点看每一行的 Loss% 列,如果中间节点(如 172.16.0.1)丢包5%,而最终节点也丢包4%,说明丢包主要发生在这个中间节点。
- 注意:有些路由器为了节省资源,会故意不回复ICMP,导致误报丢包,如果某行Loss高但其他行正常,通常可以忽略。
使用在线/图形化工具
如果不想命令行操作,可用网页工具或软件:
- PingPlotter(Windows/macOS):可视化显示每跳延迟和丢包,支持长期监测。
- SmokePing:开源工具,可长时间绘制丢包趋势图。
- 在线ping检测网站(如
ping.pe):从多个国家同时ping你的服务器,快速判断是否地域性丢包。
测试时的注意事项(重要)
- 防火墙/安全策略: 某些网络设备会限制ICMP(ping)流量,导致
ping显示丢包,但实际TCP业务(如网页、视频)并不丢包。建议同时用iperf3测试UDP来验证。 - 网络负载: 丢包可能在网络高峰期更严重,建议在不同时段多次测试,取平均值。
- 无线网络: 无线网络丢包通常比有线更频繁,且受电磁干扰、距离、穿墙影响,如果测试无线,建议靠近路由器再试一次。
- 目标选择: 测试到外网(如8.8.8.8)的丢包可能受运营商影响;测试到内网网关(如192.168.1.1)的丢包则反映本地局域网问题。
- 误报处理: 使用
mtr时,如果中间节点丢包但最终节点不丢包,说明中间节点限制ICMP回复,并非真实丢包。
总结推荐
| 场景 | 推荐工具 | 原因 |
|---|---|---|
| 快速检查外网连通性 | ping -c 100 目标IP |
简单快捷,适合初步判断 |
| 定位丢包发生在哪个路由节点 | mtr 或 WinMTR |
分层显示,可定位故障点 |
| 测试实际业务是否丢包 | iperf3 -u(UDP测试) |
模拟真实流量,结果更准 |
| 长期监控网络稳定性 | SmokePing 或 PingPlotter | 持续记录,生成趋势图 |
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。