作者信息:https://home.cnblogs.com/u/huangjiabobk

在Linux中,如何使用MTR进行网络诊断和路由跟踪?

mtr(My Traceroute)是一个结合了tracerouteping功能的网络诊断工具。它可以显示到目的主机的数据包传输路径,并持续监测每个路径点的丢包率和延迟。

以下是使用mtr进行网络诊断和路由跟踪的详细步骤:

1. 安装mtr

首先,你需要确保你的Linux系统上已经安装了mtr。你可以使用包管理器来安装它。例如,在基于Debian的系统(如Ubuntu)上,你可以使用apt

sudo apt update  
sudo apt install mtr

在基于RPM的系统(如CentOS)上,你可以使用yumdnf

sudo yum install mtr   # CentOS 7 及更早版本  
# 或者  
sudo dnf install mtr   # CentOS 8 及Fedora
2. 使用mtr进行网络诊断
2.1 基本用法

要跟踪到某个目的主机的路由,只需运行:

mtr <destination_host>

其中<destination_host>是你要跟踪的目的主机的IP地址或域名。

运行mtr后,你将看到类似以下的输出:

HOST: linuxhint               Loss%   Snt   Last   Avg  Best  Wrst StDev  
  1.|-- 192.168.1.1           0.0%    10    0.9   1.0   0.9   1.2   0.1  
  2.|-- 10.0.0.1              0.0%    10    1.8   1.9   1.7   2.4   0.2  
  ...  
 30.|-- google-public-dns-a.g 0.0%    10   27.1  27.4  27.1  27.9   0.3
  • Loss%:丢包率。
  • Snt:已发送的数据包数量。
  • Last:最后一个数据包的延迟。
  • Avg:平均延迟。
  • Best:最佳延迟。
  • Wrst:最差延迟。
  • StDev:延迟的标准偏差。
2.2 常用选项
  • -r:报告模式。不显示每个主机的详细信息,只显示摘要信息。
  • --report-cycles :在报告模式下,每<num>轮后显示一次报告。
  • -n:不进行DNS解析,只显示IP地址。
  • -c :发送的数据包数量。
  • -i :数据包之间的时间间隔(以秒为单位)。
  • -w :等待每个响应的最长时间(以秒为单位)。

例如,要发送10个数据包,每个数据包之间间隔1秒,并只显示摘要信息,你可以使用:

mtr -r -c 10 -i 1 <destination_host>
2.3 交互式命令

当你在mtr的交互式界面中时,可以使用一些快捷键来执行操作:

  • q:退出mtr
  • s:更改数据包的大小。
  • p:暂停/恢复数据包发送。
  • o:更改数据包发送的顺序(顺序或乱序)。
  • b:切换显示模式(宽/窄)。
3. 解读结果

通过查看mtr的输出,你可以了解数据包从源主机到目的主机的传输路径、每个路径点的延迟和丢包率。这有助于你诊断网络问题,如高延迟、丢包或路由问题。

4. 注意事项
  • 确保你的系统有权限发送和接收ICMP数据包,因为mtr使用ICMP来跟踪路由。
  • 在某些网络环境中,ICMP数据包可能会被防火墙或网络设备阻止。如果遇到这种情况,你可能无法获得完整的路由跟踪信息。
  • mtr的输出可能会受到网络条件的影响,因此在分析结果时要考虑到网络的实时状态。
posted @ 2024-04-18 12:15  黄嘉波  阅读(387)  评论(0编辑  收藏  举报
版权声明:原创作品,谢绝转载!否则将追究法律责任。--作者 黄嘉波