mtr命令详解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

mtr命令详解
MTR 是⼀款强⼤的⽹络诊断⼯具,它集成了和 ping 的功能,并且会收集更多的信息,⽐如连接状态、可⽤性等等,在排查⽹络问题中,⾮常有⽤。

mtr(My traceroute)⼏乎是所有Linux发⾏版本预装的⽹络测试⼯具。

其将ping和traceroute的功能合并,所以功能更强⼤。

mtr默认发送ICMP数据包进⾏链路探测。

您也可以通过-u参数来指定使⽤UDP数据包进⾏探测。

相对于traceroute只会做⼀次链路跟踪测试,mtr会对链路上的相关节点做持续探测并给出相应的统计信息。

所以,mtr能避免节点波动对测试结果的影响,所以其测试结果更正确,建议优先使⽤。

MTR的安装
在 Linux下可以直接使⽤ yum ⼯具(以 CentOS 为例)进⾏安装:
[root@iZbp1377m2iy8ro0dbnt1kZ ~]# yum provides mtr #查看mtr命令是由哪个安装包提供
Loaded plugins: fastestmirror
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
Determining fastest mirrors
* remi-php80:
* remi-safe:
2:mtr-0.85-7.el7.x86_64 : A network diagnostic tool
Repo : base
[root@iZbp1377m2iy8ro0dbnt1kZ ~]# yum install mtr -y #安装mtr
在 Windows 下,建议安装,这款⼯具带了 MTR 的功能。

在下,建议使⽤ brew 进⾏安装。

mtr命令⽤法
mtr命令最基础的使⽤很简单,直接使⽤命令:mtr ip或域名即可
⽤法说明
# mtr -h
usage: mtr [-BfhvrwctglxspQomniuT46] [--help] [--version] [--report]
[--report-wide] [--report-cycles=COUNT] [--curses] [--gtk]
[--csv|-C] [--raw] [--xml] [--split] [--mpls] [--no-dns] [--show-ips]
[--address interface] [--filename=FILE|-F]
[--ipinfo=item_no|-y item_no]
[--aslookup|-z]
[--psize=bytes/-s bytes] [--order fields]
[--report-wide|-w] [--inet] [--inet6] [--max-ttl=NUM] [--first-ttl=NUM]
[--bitpattern=NUM] [--tos=NUM] [--udp] [--tcp] [--port=PORT] [--timeout=SECONDS]
[--interval=SECONDS] HOSTNAME
常见可选参数说明
--report:以报告模式显⽰输出。

--split:将每次追踪的结果分别列出来,⽽⾮统计整个结果。

--psize:指定ping数据包的⼤⼩。

--no-dns:不对IP地址做域名反解析。

--address:主机有多个IP地址时,设置发送数据包的IP地址。

-4:只使⽤IPv4协议。

-6:只使⽤IPv6协议。

另外,也可以在mtr运⾏过程中,输⼊类似如下的字母⽤于快速切换模式。

或h:显⽰帮助菜单。

d:切换显⽰模式。

n:启⽤或禁⽤DNS域名解析。

u:切换使⽤ICMP或UDP数据包进⾏探测。

MTR 参数详解
-F, --filename FILE read hostname(s) from a file
-4 use IPv4 only
-6 use IPv6 only
-u, --udp use UDP instead of ICMP echo
-T, --tcp use TCP instead of ICMP echo
-a, --address ADDRESS bind the outgoing socket to ADDRESS
-f, --first-ttl NUMBER set what TTL to start
-m, --max-ttl NUMBER maximum number of hops
-U, --max-unknown NUMBER maximum unknown host
-P, --port PORT target port number for TCP, SCTP, or UDP
-L, --localport LOCALPORT source port number for UDP
-s, --psize PACKETSIZE set the packet size used for probing
-B, --bitpattern NUMBER set bit pattern to use in payload
-i, --interval SECONDS ICMP echo request interval
-G, --gracetime SECONDS number of seconds to wait for responses
-Q, --tos NUMBER type of service field in IP header
-e, --mpls display information from ICMP extensions
-Z, --timeout SECONDS seconds to keep probe sockets open
-r, --report output using report mode
-w, --report-wide output wide report
-c, --report-cycles COUNT set the number of pings sent
-j, --json output json
-x, --xml output xml
-C, --csv output comma separated values
-l, --raw output raw format
-p, --split split output
-t, --curses use curses terminal interface
--displaymode MODE select initial display mode
-n, --no-dns do not resove host names
-b, --show-ips show IP numbers and host names
-o, --order FIELDS select output fields
-y, --ipinfo NUMBER select IP information in output
-z, --aslookup display AS number
-h, --help display this help and exit
-v, --version output version information and exit
⽰例
[root@iZbp1377m2iy8ro0dbnt1kZ ~]# mtr -rn
Start: Mon Jul 26 16:33:13 2021
HOST: iZbp1377m2iy8ro0dbnt1kZ Loss% Snt Last Avg Best Wrst StDev
1.|-- 10.1
2.208.110 0.0% 10 2.7 2.6 2.5 2.9 0.0
2.|-- 10.12.208.73 10.0% 10 5.0 4.9 4.1 8.2 1.2
3.|-- 10.255.101.109 0.0% 10 2.5 3.0 2.4 7.8 1.6
4.|-- 103.41.142.162 0.0% 10 3.5 3.7 3.4
5.4 0.5
5.|-- 10.102.4
6.61 0.0% 10 2.9 3.0 2.9 3.1 0.0
6.|-- 115.238.21.14 0.0% 10 3.1 3.0 3.0 3.1 0.0
7.|-- 220.191.199.73 0.0% 10 8.1 6.7 6.5 8.1 0.5
8.|-- 202.97.33.145 30.0% 10 13.9 14.5 13.9 15.9 0.6
9.|-- 58.213.95.98 80.0% 10 14.8 14.8 14.8 14.9 0.0
10.|-- 58.213.95.130 90.0% 10 14.6 14.6 14.6 14.6 0.0
11.|-- 58.213.96.78 0.0% 10 13.0 12.9 12.8 13.0 0.0
12.|-- 100.0 10 0.0 0.0 0.0 0.0 0.0
13.|-- 100.0 10 0.0 0.0 0.0 0.0 0.0
14.|-- 100.0 10 0.0 0.0 0.0 0.0 0.0
15.|-- 100.0 10 0.0 0.0 0.0 0.0 0.0
16.|-- 180.101.49.12 0.0% 10 14.0 14.0 14.0 14.0 0.0
返回结果说明
默认配置下,返回结果中各数据列的说明如下:
第⼀列(Host):节点IP地址和域名。

按n键可切换显⽰。

第⼆列(Loss%):节点丢包率。

第三列(Snt):每秒发送数据包数。

默认值是10,可以通过-c参数指定。

第四列(Last):最近⼀次的探测延迟。

第五、六、七列(Avg、Best、Worst):分别是探测延迟的平均值、最⼩值和最⼤值。

第⼋列(StDev):标准偏差,越⼤说明相应节点越不稳定。

Loss%(丢包率)的判断
任⼀节点的Loss%(丢包率)如果不为零,则说明这⼀跳⽹络可能存在问题。

导致相应节点丢包的原因通常有以下两种:
运营商基于安全或性能需求,限制了节点的ICMP发送速率,导致丢包。

节点确实存在异常,导致丢包。

结合异常节点及其后续节点的丢包情况,并参见以下内容,判定丢包原因。

如果随后节点均没有丢包,则通常表⽰异常节点丢包是由于运营商策略限制所致。

可以忽略相关丢包。

如果随后节点也出现丢包,则通常说明异常节点确实存在⽹络异常,导致丢包。

另外,上述两种情况可能同时发⽣,即相应节点既存在策略限速,⼜存在⽹络异常。

对于这种情况,如果异常节点及其后续节点连续出现丢包,⽽且各节点的丢包率不同,则通常以最后⼏跳的丢包率为准。

关于Timeouts
有时可能看到mtr输出结果中有(),这可能是⼀些路由器将ICMP丢弃和没有应答产⽣超时导致的,或者是返回线路有问题。

超时不⼀定是丢包的指⽰。

数据包仍然可以到达它们的⽬的地,⽽没有明显的数据包丢失或延迟。

超时可能是由于路由器为了QoS(quality of service)的⽬的丢弃数据包,或者可能是由于返回路由的某些问题导致的超时。

命令参考实例
使⽤-r参数显⽰报告,默认是动态显⽰的:
mtr -r
使⽤-c参数设置每秒发送数据包数量:
mtr -r -c 30
使⽤-s参数指定ping数据包的⼤⼩:
mtr -r -c 30 -s 1024
扩展阅读:。

相关文档
最新文档