干网工这么多年,居然还不知道有这款神器可以诊断网络丢包,网络延迟?

本文样式、排版由网络工程师阿龙编辑 , 如需转载本样式风格、字体版权 , 请保留此信息 , 以尊重小编辛苦编辑 , 否则后果自负 。
常用的ping , tracert , nslookup一般用来判断主机的网络连通性 , 其实Linux下有一个更好用的网络联通性判断工具 , 它可以结合pingnslookuptraceroute来判断网络的相关特性 , 这个命令就是mtr 。
mtr全称mytraceroute , 是一个把ping和traceroute合并到一个程序的网络诊断工具 。
traceroute默认使用UDP数据包探测 , 而mtr默认使用ICMP报文探测 , ICMP在某些路由节点的优先级要比其他数据包低 , 所以测试得到的数据可能低于实际情况 。
安装方法
1、Windows系统可以直接在https://cdn.ipip.net/17mon/besttrace.exe下载BestTrace工具并安装 。 也可以在https://github.com/oott123/WinMTR/releasesGitHub上下载MTR专用工具 , 该工具为免安装 , 下载后可以直接使用 。 2、Linux可以直接运行命令进行安装 。
#Debian/Ubuntu系统
sudoaptinstallmtr
#RedHat/CentOS系统
sudoyuminstallmtr
3、Apple客户端可以在Appstore搜索BestNetTools下载安装
4、Android客户端:可以在GooglePlay上下载TracePing , 但是由于国内GooglePlay无法访问 , 笔者自行下载下来 , 可以直接访问https://dwz.cn/KCdNPH4c下载TracePing 。
使用
MTR使用非常简单 , 查看本机到qq.com的路由以及连接情况直接运行如下命令:
mtrqq.com
MTRqq.com测试界面
具体输出的参数含义为:
第一列是IP地址
丢包率:Loss
已发送的包数:Snt
最后一个包的延时:Last
平均延时:Avg
最低延时:Best
最差延时:Wrst
方差(稳定性):StDev参数说明
干网工这么多年,居然还不知道有这款神器可以诊断网络丢包,网络延迟?】-ror--report
使用mtr-rqq.com来打印报告 , 如果不使用-ror--report参数mtr会不断动态运行 。 使用report选项 , mtr会向qq.com主机发送10个ICMP包 , 然后直接输出结果 。 通常情况下mtr需要几秒钟时间来输出报告 。 mtr报告由一系列跳数组成 , 每一跳意味着数据包通过节点或者路由器来达到目的主机 。
一般情况下mtr前几跳都是本地ISP , 后几跳属于服务商 , 比如腾讯数据中心 , 中间跳数则是中间节点 , 如果发现前几跳异常 , 需要联系本地ISP服务提供上 , 相反如果后几跳出现问题 , 则需要联系服务提供商 , 中间几跳出现问题 , 则需要联系运营商进行处理 。
默认使用-r参数来生成报告 , 只会发送10个数据包 , 如果想要自定义数据包数量 , 可以使用-c参数 。
-sor--packetsize
使用-s来指定ping数据包的大小mtr-s100qq.com100bytes数据包会用来发送 , 测试 , 如果设置为负数 , 则每一次发送的数据包的大小都会是一个随机数 。 **-c
指定发送数量
mtr-c100qq.com
**-n
不进行主机解释
使用-n选项来让mtr只输出IP , 而不对主机hostname进行解释
mtr-nqq.com
MTR结果分析
当我们分析MTR报告时候 , 最好找出每一跳的任何问题 。 除了可以查看两个服务器之间的路径之外 , MTR在它的七列数据中提供了很多有价值的数据统计报告 。 Loss%列展示了数据包在每一跳的丢失率 。 Snt列记录的多少个数据包被送出 。 使用–report参数默认会送出10个数据包 。 如果使用–report-cycles=[number-of-packets]选项 , MTR就会按照[number-of-packets]指定的数量发出ICMP数据包 。
Last,Avg,Best和Wrst列都标识数据包往返的时间 , 使用的是毫秒(ms)单位表示 。 Last表示最后一个数据包所用的时间 , Avg表示评价时间 , Best和Wrst表示最小和最大时间 。 在大多数情况下 , 平均时间(Avg)列需要我们特别注意 。