文章插图
常用的 ping,tracert,nslookup 一般用来判断主机的网络连通性,其实 linux 下有一个更好用的网络联通性判断工具,它可以结合ping nslookup traceroute 来判断网络的相关特性,这个命令就是 mtr 。
mtr 全称 my traceroute,是一个把 ping 和 traceroute 合并到一个程序的网络诊断工具 。
traceroute 默认使用 UDP 数据包探测,而 mtr 默认使用 ICMP 报文探测,ICMP 在某些路由节点的优先级要比其他数据包低,所以测试得到的数据可能低于实际情况 。
安装方法1. windows 系统可以直接在
https://cdn.ipip.net/17mon/besttrace.exe下载 BestTrace 工具并安装 。也可以在 https://github.com/oott123/WinMTR/releases GitHub上下载 MTR专用工具,该工具为免安装,下载后可以直接使用 。
2. Linux 可以直接运行命令进行安装 。
# Debian/Ubuntu 系统
sudo apt install mtr
# RedHat/centos 系统
sudo yum install mtr
3. Apple 客户端可以在 App store 搜索 Best NetTools 下载安装4. Android 客户端:可以在 google Play 上下载 TracePing,但是由于国内 Google Play 无法访问,笔者自行下载下来,可以直接访问 https://dwz.cn/KCdNPH4c 下载TracePing 。
使用MTR 使用非常简单,查看本机到 qq.com 的路由以及连接情况直接运行如下命令:
mtr qq.com
文章插图
MTR qq.com 测试界面
具体输出的参数含义为:
- 第一列是IP地址
- 丢包率:Loss
- 已发送的包数:Snt
- 最后一个包的延时:Last
- 平均延时:Avg
- 【网络丢包,网络延迟?这款神器帮你搞定所有】最低延时:Best
- 最差延时:Wrst
- 方差(稳定性):StDev
参数说明-r or -- report
使用 mtr -r qq.com 来打印报告,如果不使用 -r or -- report 参数 mtr 会不断动态运行 。使用 report 选项,mtr 会向 qq.com 主机发送 10 个 ICMP 包,然后直接输出结果 。通常情况下 mtr 需要几秒钟时间来输出报告 。mtr 报告由一系列跳数组成,每一跳意味着数据包通过节点或者路由器来达到目的主机 。
一般情况下 mtr 前几跳都是本地 ISP,后几跳属于服务商,比如 腾讯数据中心,中间跳数则是中间节点,如果发现前几跳异常,需要联系本地 ISP 服务提供上,相反如果后几跳出现问题,则需要联系服务提供商,中间几跳出现问题,则需要联系运营商进行处理 。
默认使用 -r 参数来生成报告,只会发送10个数据包,如果想要自定义数据包数量,可以使用
-c
参数 。-s or -- packetsize
使用
-s
来指定ping数据包的大小mtr -s 100 qq.com
100 bytes 数据包会用来发送,测试,如果设置为负数,则每一次发送的数据包的大小都会是一个随机数 。-c
指定发送数量
mtr -c 100 qq.com
-n不进行主机解释
使用
-n
选项来让 mtr 只输出 IP,而不对主机 host name 进行解释mtr -n qq.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)列需要我们特别注意 。
最后一列 StDev 提供了数据包在每个主机的标准偏差 。如果标准偏差越高,说明数据包在这个节点的延时越不相同 。标准偏差会让您了解到平均延时是否是真的延时时间的中心点,或者测量数据受到某些问题的干扰 。
例如,如果标准偏差很大,说明数据包的延迟是不确定的 。一些数据包延迟很小(例如:25ms),另一些数据包延迟很大(例如:350ms) 。当10个数据包全部发出后,得到的平均延迟可能是正常的,但是平均延迟是不能很好的反应实际情况的 。如果标准偏差很高,使用最好和最坏的延迟来确定平均延迟是一个较好的方案 。
推荐阅读
- wireshark网络抓包详解
- 网络小说|短视频巨头挑战网文市场:抖音开始测试小说频道
- 苹果 iOS 16 终于可以看 WiFi 网络密码了
- 信息网络技术 网络通信技术
- 网络用语yp是什么意思?
- 企业网络营销推广计划 网络营销策划计划
- 几款免费网络电话的使用心得 免费网页电话
- 网络工程专业的学生,毕业后的薪资水平如何? 网络工程就业前景
- 帮你养成规律生活 规律生活
- 高通|全球最大5G网络 中国5G发牌三周年:高通CEO点赞