今天看到很多网络通信故障的处理方法,特别是使用MTR来辅助解决问题,笔者觉得颇有意义,分析测试一下并记录方法便于后期查找。
访问云服务器时发现网络存在卡顿现象,使用 ping 命令,发现网络存在丢包或时延较高的情况。丢包或时延较高可能是骨干链路拥塞、链路节点故障、服务器负载高、系统设置问题等原因引起。在排除服务器自身原因后,可以使用 MTR 进行进一步诊断。
一、Windows 系统下的工具WinMTR。
适用于 Windows 系统的免费网络诊断工具,集成了 Ping 和 tracert 的功能,具有图形界面,可以直观地看到各个节点的响应时间和丢包情况。
笔者以win10为平台,目的IP地址以百度的ping命令的IP地址来测试。WinMTR 需要下载后直接运行exe文件即可。
1、在 WinMTR 窗口的 Host 处,输入目的服务器 IP 或者域名,单击Start。
2、根据实际情况,等待 WinMTR 运行一段时间,单击Stop,结束测试。
3、查看测试结果并分析。
Hostname:到目的服务器要经过的每个主机 IP 或名称。
Nr:经过节点的数量。
Loss%:对应节点的丢包率。
Sent:发送的数据包数量。
Recv:接收到响应的数量。
Best:最短的响应时间。
Avrg:平均响应时间。
Worst:最长的响应时间。
Last:最近一次的响应时间。
二、 Linux 平台下的工具 MTR
Linux 平台上诊断网络状态的工具,继承了 Ping、traceroute、nslookup 的功能,默认使用 ICMP 包测试两个节点之前的网络连接情况。对于 Ping、traceroute都毕竟熟悉,nslookup 是用于查询DNS的记录,查看域名解析是否正常,在网络故障的时候用来诊断网络问题,nslookup直接跟域名即可。
笔者以CentOS 8为平台,目的P地址以百度的ping命令的IP地址来测试。需要yum install mtr 来安装,不够笔者的CentOS 8自带这个软件。
命令行中运行 mtr 14.215.177.38 可以实时查看网络连接情况,mtr 14.215.177.38 --report可得到报告。
HOST:节点的 IP 地址或域名。
Loss%:丢包率。
Snt:每秒发送的数量包的数量。
Last:最近一次的响应时间。
Avg:平均响应时间。
Best:最短的响应时间。
Wrst:最长的响应时间。
StDev:标准偏差,偏差值越高,说明各个数据包在该节点的响应时间相差越大。
需要提醒的是,由于网络状况的非对称性,遇到本地到服务器的网络问题时,建议您收集双向的 MTR 数据(从本地到云服务器以及云服务器到本地)。下面三个经验总结:
1、丢包发生在目的服务器,则可能是目的服务器的网络配置不当引起;
2、丢包开始于前三跳,一般为本地运营商网络问题;
3、如果丢包发生在接近目的服务器的几跳,则可能为目的服务器运营商的网络问题。
网友评论