纠正错误 添加实例

mtr

结合了 traceroute 和 ping 功能的强大网络诊断工具。

补充说明

MTR(My Traceroute)是一个跨平台的命令行网络诊断工具。它的核心优势在于能够持续地向路径上的每个节点发送数据包,并动态地统计出每个节点的响应情况(如丢包率、延迟),而不仅仅是像 traceroute 那样只显示一次性的路径。

这使得它非常适合用于诊断网络间歇性丢包、高延迟或路由环路等问题。

mtr 与其他工具对比:

工具 实时更新 双向诊断 丢包统计 延迟统计 交互式界面
ping ✔️ ✔️
traceroute ✔️
mtr ✔️ ✔️ ✔️ ✔️ ✔️

适用的 Linux 版本

# Debian/Ubuntu 系统
sudo apt-get install mtr

# CentOS/RHEL 系统
sudo yum install mtr

# Fedora 系统
sudo dnf install mtr

# Arch Linux 系统
sudo pacman -S mtr

语法

mtr [选项] [目标ip/域名]

选项

选项 全称 说明
-c <次数> --report-cycles 设置发送数据包的次数,然后自动退出并生成报告。在做自动化脚本或需要定量测试时非常有用。
-n --no-dns 不进行 DNS 反向解析,直接显示 IP 地址。可以加快输出速度。
-r --report 以报告模式运行。通常与 -c 联用,生成一个统计报告,而不是交互式界面。
-s <大小> --psize 设置发送的数据包大小(单位:字节)。用于模拟不同大小的数据包。
-i <秒> --interval 设置每次发送数据包的间隔时间(默认是1秒)。
-4 强制使用 IPv4。
-6 强制使用 IPv6。
--tcp 使用 TCP 协议进行探测(默认是 ICMP)。
--udp 使用 UDP 协议进行探测(默认是 ICMP)。
-p --port 当使用 --tcp--udp 时,指定目标端口。
-o <字段> --order 自定义输出字段的顺序。例如 -o "LSDR NBAW V"

实例

1. 基本用法(交互式模式)

mtr google.com

运行后,会进入一个实时更新的交互式界面。按 q 键退出,按 ? 键可以查看帮助。

2. 生成定量报告(最常用)

8.8.8.8 发送 10 个数据包,然后生成一个最终报告,不进行 DNS 解析。

mtr -r -c 10 -n 8.8.8.8

输出示例:

Start: 2024-05-20T10:00:00+0800
HOST: localhost                   Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- 192.168.1.1                0.0%    10    2.1   2.2   1.9   3.0   0.3
  2.|-- 10.10.10.1                 0.0%    10   10.5  11.2   9.8  15.0   1.5
  3.|-- 211.138.125.129           10.0%    10   15.3  16.1  14.5  20.1   1.8
  4.|-- 221.183.55.49              0.0%    10   18.2  19.1  17.5  25.0   2.1
  5.|-- 8.8.8.8                    0.0%    10   20.1  21.0  19.5  28.3   2.5

在交互式界面或报告中,你会看到类似下面的列:

Host: 节点的主机名或 IP 地址。
Loss%: 该节点的丢包率。这是 MTR 最有价值的信息之一。
Snt: 已发送的数据包数量。
Last: 最近一个数据包的延迟(毫秒)。
Avg: 所有数据包的平均延迟。
Best: 所有数据包中的最小延迟。
Wrst: 所有数据包中的最大延迟。
StDev: 延迟的标准差。值越大,说明网络延迟越不稳定。

从这个报告可以清晰地看到,在第 3 跳 211.138.125.129 处出现了 10% 的丢包。

如果看到星号(*)而不是IP地址:

3. 使用 TCP 模式探测特定端口

有些网络会过滤 ICMP 包,但允许 TCP 流量。此时可以用 TCP 模式来探测到特定服务(如 Web)的路径。

mtr --tcp -p 80 -n -r -c 10 example.com

4. 设置数据包大小和间隔

发送 5 个大小为 1500 字节的数据包,每 2 秒发送一个。

mtr -r -c 5 -s 1500 -i 2 google.com