MTR 网络诊断工具
为什么会了解到MTR这个工具
今天线上业务出现了大量语音合成问题,本以为是服务出问题,但是经过排查发现服务一切正常就是合成的特别慢,在TTS语音合成服务那边也没有大量的任务堆积,这边也一直再发送需要合成的数据过去,这种情况只能说明在传输需要合成的语句的时候出现了问题,这时候第一个排查的就是网络问题,可能是网络大量丢包造成的数据传输问题,于是开始使用ping命令查看,发现确实有丢包,但是通过ping又没有办法发现是哪个地方丢包,这个时候聪明的你肯定想到我们用traceroute
命令来检测数据包传输到哪个地方不传了,但是我发现这个并不能说明什么,因为丢包不是完全丢,而是丢一部分,这个时候想有没有一个命令是ping
和traceroute
的合体,于是google了一下,发现mtr
刚好满足我的需求,于是使用记录并分享.
MTR是什么
刚才我也说了MTR
是ping
和traceroute
的合体.
运行Mtr指定一个IP地址,Mtr会查看运行Mtr的主机和指定目标主机之间的网络节点。在确定目标主机和本地主机间每个网络节点的IP地址后,它向每个网络节点发送一个ICMP ECHO请求,以确定到每个节点的链路的质量。就像这样它会打印到每个节点的运行统计信息。他也可以测试UDP和TCP
安装MTR
1) CentOS/RedHat安装
代码语言:javascript复制yum -y install mtr
2) Ubuntu安装
代码语言:javascript复制apt-get install mtr
3) windows 安装
代码语言:javascript复制自行去下载:http://winmtr.net/download-winmtr/
Linux下使用
代码语言:javascript复制# mtr --help
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
常用参数解释:
- -s 用来指定ping数据包的大小
- -n no-dns不对IP地址做域名反解析
- -a 来设置发送数据包的IP地址,这个用于主机有多个IP时。
- -i 使用这个参数来设置ICMP返回之间的要求默认是1秒
- -c 指定发送多少个数据包
- -4 IPv4
- -6 IPv6 在MTR运行过程中,可以输入快捷字母切换模式例如:
- ?或 h:显示帮助菜单。
- d:切换显示模式。
- n:切换启用或禁用 DNS 域名解析。
- u:切换使用 ICMP或 UDP 数据包进行探测。
测试使用
代码语言:javascript复制#mtr www.baidu.com
My traceroute [v0.85]
TEST-000001 (0.0.0.0) Tue Jan 22 08:57:30 2019
Keys: Help Display mode Restart statistics Order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. ???
2. 11.220.128.65 0.0% 6 2.6 3.2 2.4 6.2 1.3
3. 11.220.128.53 0.0% 6 52.9 46.4 13.5 55.0 16.2
4. 11.182.220.10 0.0% 6 0.9 1.5 0.9 3.6 0.8
5. 140.205.27.202 0.0% 6 1.8 1.5 1.4 1.8 0.0
6. 116.251.105.237 0.0% 6 2.0 4.2 1.8 11.4 3.9
7. 122.224.214.73 0.0% 6 1.7 2.0 1.7 2.4 0.0
8. ???
9. 115.239.209.38 0.0% 6 2.6 2.7 2.6 2.9 0.0
10. ???
11. ???
12. 115.239.210.27 0.0% 6 2.5 2.5 2.4 2.5 0.0
- Host: 显示经过每一跳的地址
- LOOS%:到此此节点数据包丢包率,显示每个节点的丢包率
- Snt: 发送包的数量
- Last: 显示的最近一次的返回延时
- Avg: 发送ping包的平均延迟
- Best: 最低延迟时间
- Wrst: 最大延迟时间
- StDev:标准偏差