Linux运维基础之mtr命令详解

Linux运维基础之mtr命令详解

mtr 命令是 “My Traceroute” 的缩写,是一种功能强大的网络诊断工具,结合了 tracerouteping 命令的功能。通过向指定目的地发送数据包,它可以深入了解网络路径,帮助识别潜在的瓶颈或故障。与 tracerouteping pathping 等工具类似,mtr 命令能提供更全面的网络性能视图。

系统管理员和网络工程师发现 mtr 命令在排除网络故障时非常方便。无论是监控连接的稳定性还是诊断复杂的网络问题,mtr 命令都可以与 ifconfignetstat 等命令一起使用,提供详细的分析。

如何安装 mtr 命令

如果你的 Linux 发行版中尚未包含 mtr 软件包,你可能需要安装它。下面是一些常见发行版的安装和卸载方法:

对于基于 Debian 的系统(如 Ubuntu):

使用以下命令安装 mtr

sudo apt-get update
sudo apt-get install mtr

以后要卸载 mtr,可以使用

sudo apt-get remove --purge mtr

对于基于 Red Hat 的系统(如 Fedora):

要安装 mtr,可以使用

sudo dnf install mtr

以后要卸载 mtr,可以使用

sudo dnf remove mtr

适用于基于 Arch 的系统:

要安装 mtr,可以使用

sudo pacman -S mtr

以后要卸载 mtr,可以使用

sudo pacman -R mtr

如何使用 mtr

1. 基本用法

语法: mtr <hostname>

说明:跟踪指向给定主机名或 IP 地址的路由。

示例:mtr example.com

输出:

Host              Loss%   Snt   Last   Avg  Best  Wrst StDev
1. router.local    0.0%    10    1.2   1.3   1.1   1.5   0.1
2. isp-gateway     0.0%    10    2.3   2.4   2.2   2.6   0.1
3. example.com     0.0%    10   10.5  10.6  10.4  10.8   0.1

此输出显示了到 example.com 的路由,共有三个跳。它提供了每一跳的数据包丢失、已发送数据包数量和延迟统计的详细信息。

2. 使用 ICMP 代替 UDP

语法:mtr --icmp <hostname>

说明:使用 ICMP ECHO 代替 UDP 数据报跟踪路由。

示例:mtr --icmp example.com

输出:

Host              Loss%   Snt   Last   Avg  Best  Wrst StDev
1. router.local    0.0%    10    1.1   1.2   1.0   1.3   0.1
2. isp-gateway     0.0%    10    2.2   2.3   2.1   2.5   0.1
3. example.com     0.0%    10   10.4  10.5  10.3  10.6   0.1

该命令使用 ICMP ECHO 进行跟踪,其结果可能与默认的 UDP 不同,特别是在安装了某些防火墙或过滤器的情况下。

3. 显示 AS(自治系统)编号

语法:mtr --aslookup <hostname>

说明:跟踪路由并显示每跳的 ASN(AS 号)。

示例:mtr --aslookup example.com

输出:

Host              Loss%   Snt   Last   Avg  Best  Wrst StDev ASN
1. router.local    0.0%    10    1.2   1.3   1.1   1.5   0.1 AS12345
2. isp-gateway     0.0%    10    2.3   2.4   2.2   2.6   0.1 AS12345
3. example.com     0.0%    10   10.5  10.6  10.4  10.8   0.1 AS67890

该输出包括每个跳转的自治系统(AS)编号,可帮助用户深入了解通往目标的路径上网络基础设施的所有权和控制权。

4. 使用 TCP 代替 UDP

语法:mtr --tcp <hostname>

说明:使用 TCP SYN 数据包而不是 UDP 跟踪路由。

示例:mtr --tcp example.com

输出:

Host              Loss%   Snt   Last   Avg  Best  Wrst StDev
1. router.local    0.0%    10    1.4   1.5   1.3   1.6   0.1
2. isp-gateway     0.0%    10    2.5   2.6   2.4   2.7   0.1
3. example.com     0.0%    10   10.7  10.8  10.5  11.0   0.1

该命令使用 TCP SYN 数据包进行跟踪,如果 UDP 在路由中被过滤或阻止,该命令会很有用。

5. 指定 Ping 次数

语法:mtr -c <count> <hostname>

说明:向每一跳发送指定数量的 ping。

示例:mtr -c 5 example.com

输出:

Host              Loss%   Snt   Last   Avg  Best  Wrst StDev
1. router.local    0.0%     5    1.2   1.3   1.1   1.5   0.1
2. isp-gateway     0.0%     5    2.3   2.4   2.2   2.6   0.1
3. example.com     0.0%     5   10.5  10.6  10.4  10.8   0.1

该命令只向每一跳发送 5 个 ping,以便更快地分析路由。

6. 最后显示报告

语法:mtr --report <hostname>

说明:在报告模式下运行 mtr,向每一跳发送一系列 ping,然后在最后显示报告。

示例:mtr --report example.com

输出:

HOST: localhost              Loss%   Snt   Last   Avg  Best  Wrst StDev
1. router.local            0.0%    10    1.2   1.3   1.1   1.5   0.1
2. isp-gateway             0.0%    10    2.3   2.4   2.2   2.6   0.1
3. example.com             0.0%    10   10.5  10.6  10.4  10.8   0.1

该命令用于在测试结束时生成单一报告,而不是持续更新显示。它通常用于记录或编写脚本。

更多 Linux 命令

下面罗列了最常见的一些 Linux 命令,您可以根据自己的需要查阅对应命令的详细解析:

目录操作 rmdir · cd · pwd · exa · ls
文件操作 cat · cp · dd · less · touch · ln · rename · more · head
文件系统操作 chown · mkfs · locate
网络 ping · curl · wget · iptables · mtr
搜索和文本处理 find · grep · sed · whatis · ripgrep · fd · tldr
系统信息和管理 env · history · top · who · htop · glances · lsof
用户和会话管理 screen · su · sudo · open

此外,我们还整理 Linux 命令行大全,以帮助大家全面深入地学习 Linux。

评论留言