主题
丢包或网络不通排查方法
1. 测试流程
流程说明:
获取本地网络公网地址
在客户端本地网络,通过访问 ip138.com 等网站获取本地ip
正向链路测试
从客户端向目标服务器做ping和mtr链路测试。
- ping:从客户端向目标服务器域名或IP地址做持续的ping测试时,建议至少测试100个数据包,记录测试结果。
- mtr:根据客户端操作系统环境的不同,在Windows操作系统上使用WinMTR或在Linux操作系统上执行mtr命令,设置测试目的地址为目标服务器域名或IP地址,然后进行链路测试,记录测试结果。
反向链路测试
- ping:从目标服务器向客户端IP地址做持续的ping测试时,建议至少测试100个数据包,记录测试结果。
- mtr:根据目标服务器操作系统环境的不同,在Windows操作系统上使用WinMTR或在Linux操作系统上执行mtr命令,设置测试目的地址为客户端IP地址,然后进行链路测试,记录测试结果。
2. 进行链路测试
2.1. Windows
安装WinMTR软件进行测试,下载后双击打开即可
在Host中设置需要测试的域名或ip,点击start
测试返回案例如下
各项参数说明如下表
参数 | 参数说明 |
---|---|
Hostname | 节点IP地址和域名。 |
Nr | 节点编号。 |
Loss% | 节点丢包率。 |
Sent | 已发送的数据包数量。 |
Recv | 已成功接收的数据包数量。 |
Best | 节点延迟的最小值。 |
Avg | 节点延迟的平均值。 |
Worst | 节点延迟的最大值。 |
Last | 节点延迟的最后一次值。 |
StDev | 标准偏差。该值越大说明相应节点越不稳定。 |
2.2. Linux
安装mtr,根据不通的包管理器进行安装
shell
# apt install mtr
按mtr -c 10 -t 目标ip
的格式进行测试,这里以1.1.1.1为测试案例
各项参数说明如下
参数 | 参数说明 |
---|---|
Host | 节点IP地址和域名。您可以按n 键切换显示。 |
Loss% | 节点丢包率。 |
Snt | 已发送数据包数。默认值是10,可以通过参数-c 指定。 |
Last | 最近一次的探测延迟值。 |
Avg | 探测延迟的平均值。 |
Best | 探测延迟的最小值。 |
Wrst | 探测延迟的最大值。 |
StDev | 标准偏差。该值越大说明相应节点越不稳定。 |
3. 常见链路异常场景
目标主机网络配置不当
目标主机丢包率100%。可能是因为防火墙、安全组、iptables等规则限制,建议检查相关配置。
ICMP限速
测速结果在某一跳出现100%丢包,而后续节点正常。可能是防火墙、iptables 、运营商策略等禁用了ICMP所致,需要排查目标服务器的安全策略配置,或是进行反向MTR进行测试。
链路中存在环路
如果数据包在某一跳后出现了循环跳转,导致无法到达服务器,属于环路情况,需要联系对应节点运营商处理。
链路中断
数据包在某一跳后无任何反馈。该情况通常是对应节点中断导致,需要进行反向MTR检查,或是联系对应节点运营商处理。