固定链接 MTR—实用网络诊断工具介绍

MTR—实用网络诊断工具介绍

MTR—实用网络诊断工具介绍

前言

相信大家在平常经常会遇到网络不稳定、抖动的情况,面对网络抖动,大家往往束手无策,本文介绍了一款实用的网络诊断工具——MTR,包括 MTR 的安装、功能和原理、使用方法等。

原理

介绍 MTR 之前,先来简单介绍下基本的网络测试工具 ping 和 traceroute。

ping

通过 ping 命令,可以判断网络的通断、丢包和延时情况。Ping 使用 ICMP 协议,当 ping 某目的主机时,源主机发出 ICMP echo 报文,根据实际情况,返回 ICMP echo reply 或 ICMP 差错消息报文。如果返回 echo reply 说明源目的地址直接可以通,并可以携带源目的地址间的延时;如果不能通信,则根据返回的 ICMP 差错报文,可以判断不能通信的原因。

traceroute

Traceroute 工具用来定位源和目的地址之间的路径。使用traceroute 命令可以显示从源地址出发,到目的地址之间所经过的所有路由器。使用 traceroute 命令时,源地址首先发出一个 TTL 为 1 的 UDP 报文,当经过路径的第一条时,TTL 减一变成零,于是第一跳路由器返回一个 TTL 超时的 ICMP 差错报文,于是源 server 知道了第一跳路由器的 IP 地址;然后源 server 发送一个 TTL 为 2 的 UDP 报文,过程类似,源 server 知道了第二跳路由器的 IP 地址;以此类推,当数据包到达最后一跳时,目的地址将返回一个端口不可达的 ICMP 差错报文,于是,源 server 知道数据包已经到达了目的地址,traceroute 结束。

MTR

MTR 工具集成了 ping 和 traceroute 两种工具的优点,可以看成是两者的结合体。

MTR 工具首先使用 traceroute 得出经过的每一跳路由器,然后使用 ping 命令,得出每一跳的延时和丢包率。通过 MTR 命令,可以很直观的看到数据包所经过的路径,以及路径网络质量。

MTR 的安装

本例使用滴滴云的 DC2 来演示 MTR 的安装和使用。笔者购买了一台滴滴云的 DC2 虚拟机,DC2 可绑定一个独立的公网弹性 IP,以方便测试。

DC2 的系统为CentOS7.3。

安装 MTR 十分简单,使用 yum 安装即可:

MTR 的使用

笔者安装的 MTR 版本为0.85.

以目的地址为 8.8.8.8 为例,最简单的使用方法为:

输入完命令后,MTR 会实时显示网络情况,可使用 ctrl+c 或者 q 退出:

在交互页面按 H 键,可以显示帮助:

几个常用的按键

  1. 按 p 键可以暂停,空格键恢复工作
  2. 按 d 键可以切换显示方式
  3. n 开启/关闭 DNS 解析
  4. r 清空所有统计信息,重新统计
  5. c 接数字,表示循环的次数,默认无限循环
  6. i 接数字,设置 ping 的间隔,默认 1s
  7. f 接数字,设置初始的 TTL 值,若设置为 3,则从第三行开始显示
  8. m 接数字,设置最大的 TTL 值
  9. s 接数字,设置包的大小,如果数字小于零,则为随机大小

按 o 键,可以选择可显示的列的种类, 根据提示设置即可:

例如,选择 丢包率/发包/收包/丢包 最新/最小/最大/平均延时,则需要输入 LSRD NBWA:

如果不喜欢实时显示的方式,则可以使用 -r 或 –report 搭配 -c 参数使用,来定义循环多少次,并在结束循环时输出报告:

总结

本文介绍了 MTR 的原理、安装和使用方法。作为一个 ping 和 traceroute 的结合体,希望 MTR 工具能为大家排查网络问题提供帮助!

本文作者:王晓丹

您的留言将激励我们越做越好