mtr诊断网络丢包

  1. 云栖社区>
  2. 博客>
  3. 正文

mtr诊断网络丢包

余二五 2017-11-08 09:05:00 浏览2542
展开阅读全文

首先安装mtr

yum -y install mtr

一般在windows 来判断网络连通性用ping 和tracert,

ping的话可以来判断丢包率,tracert可以用来跟踪路由,

在Linux中有一个更好的网络连通性判断工具,它可以结合ping nslookup tracert 来判断网络的相关特性,这个命令就是mtr

[root@10.10.90.97 ~]# mtr -h

usage: mtr [-hvrctglspni46] [--help] [--version] [--report]
[--report-cycles=COUNT] [--curses] [--gtk]
[--raw] [--split] [--no-dns] [--address interface]
[--psize=bytes/-s bytes]
[--interval=SECONDS] HOSTNAME [PACKETSIZE]

mtr -h 提供帮助命令

mtr -v 显示mtr的版本信息

mtr -r 已报告模式显示

[root@10.10.90.97 ~]# mtr -r 202.108.33.94

FOCUS9097 Snt: 10 Loss% Last Avg Best Wrst StDev

220.181.61.252 0.0% 6.8 3.3 1.8 7.4 2.2
220.181.17.217 0.0% 0.4 0.5 0.4 0.7 0.1
220.181.16.17 0.0% 0.6 0.5 0.5 0.6 0.0
202.97.53.14 10.0% 0.7 0.7 0.7 0.8 0.0
219.158.35.1 0.0% 0.8 0.8 0.8 0.9 0.0
219.158.5.81 0.0% 1.2 1.3 1.2 1.6 0.1
123.126.0.138 0.0% 1.2 1.1 1.1 1.3 0.1
61.148.153.126 0.0% 1.9 10.5 1.5 89.9 27.9
61.148.143.22 0.0% 1.5 1.6 1.5 1.7 0.0
210.74.178.198 0.0% 1.6 1.6 1.5 1.9 0.1
202.108.33.94 0.0% 1.5 1.5 1.4 1.5 0.0

报告说明:
第一列:显示的是IP地址和本机域名,这点和tracert很像

第二列:snt:10 设置每秒发送数据包的数量,默认值是10 可以通过参数 -c来指定。

[root@10.10.90.97 ~]# mtr -r -c 15 202.108.33.94

FOCUS9097 Snt: 15 Loss% Last Avg Best Wrst StDev
220.181.61.252 0.0% 1.9 3.4 1.8 12.9 3.1
220.181.17.217 0.0% 0.5 0.5 0.4 0.8 0.1
220.181.16.17 0.0% 0.5 0.6 0.5 2.3 0.5
202.97.53.14 0.0% 0.7 0.7 0.7 0.7 0.0
219.158.35.1 0.0% 0.9 0.8 0.8 0.9 0.0
219.158.5.81 0.0% 1.3 2.8 1.2 22.8 5.5
123.126.0.138 0.0% 1.1 1.1 1.1 1.2 0.0
61.148.153.126 0.0% 13.8 7.4 1.6 60.4 15.5
61.148.143.22 0.0% 1.7 1.6 1.5 1.8 0.1
210.74.178.198 0.0% 1.6 1.6 1.4 1.7 0.1
202.108.33.94 0.0% 1.5 1.5 1.4 1.7 0.1

其中-c的说明是:–report-cycles COUNT

-n 不用主机解释

-c 发送多少个数据包

--report 结果显示,并不动态显示。

第三列:是显示的每个对应IP的丢包率
第四列:显示的最近一次的返回时延
第五列:是平均值 这个应该是发送ping包的平均时延
第六列:是最好或者说时延最短的
第七列:是最差或者说时延最常的
第八列:是标准偏差
接下来接着说相关参数:

mtr -s 用来指定ping数据包的大小

mtr -n no-dns不对IP地址做域名解析

mtr -a 来设置发送数据包的IP地址 这个对一个主机由多个IP地址是有用的

mtr -i 使用这个参数来设置ICMP返回之间的要求默认是1秒

mtr -4 IPv4

mtr -6 IPv6

其中Host列是途经的IP或本机域名
Loss%列就是对应IP行的丢包率了,值得一提的是,只有最后的目标丢包才算是真正的丢包
Last列则是最后一次返回的延迟,按毫秒计算的
Avg列是所有返回时延的一个平均值
Best列是最快的一次返回时延
Wrst列是最长的一次返回时延
StDev列是标准偏差

接下来就是命令参数了:

mtr -s 用来指定ping数据包的大小

mtr -n no-dns不对IP地址做域名解析

mtr -a 来设置发送数据包的IP地址 这个对一个主机由多个IP地址是有用的

mtr -i 使用这个参数来设置ICMP返回之间的要求默认是1秒

mtr -c 是ping的次数。使用方法跟ping命令一样

mtr -4 IPv4
mtr -6 IPv6
所谓的IPv4和IPv6,现在基本上用不到呢还,我们基本上来测试链路连通性都是这么打的

mtr -i 0.1 -n -c 100 IP或域名

这么打的意思是每0.1秒返回一次结果,ping100次,并且不对IP地址做域名解析

上传下载速度

speedtest-cli是一个用Python编写的轻量级Linux命令行工具 在Python2.4至3.4版本下均可运行 它基于Speedtest.net的基础架构来测量网络的上/下行速率

安装speedtest-cli很简单——只需要下载其Python脚本文件

wget https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py

chmod a+rx speedtest_cli.py

sudo mv speedtest_cli.py /usr/local/bin/speedtest-cli

sudo chown root:root /usr/local/bin/speedtest-cli

如何测试也很简单 使用

speedtest-cli

他会寻找与你最近的一台服务器 当然 你也可以使用

speedtest-cli --list | more

来查看附近的所有服务器

如下

Retrieving speedtest.net configuration... 
Retrieving speedtest.net server list... 
5300) Hangzhou , Zhejiang Unicom (Hangzhou, China) [4.87 km] 
8173) 5UFVPN (Hangzhou, China) [4.87 km] 
3927) China Mobile Jiangsu Co., Ltd. (Suzhou, China) [121.23 km] 
6245) ningbo unicom (Ningbo, China) [141.79 km] 
6715) China Mobile Group Zhejiang Co., Ltd. (Ningbo, China) [141.79 km] 
5122) China Mobile Group Jiangsu Co.,Ltd. (Wuxi, China) [142.18 km] 
3633) China Telecom (Shanghai, China) [162.85 km] 
5083) Shanghai Branch, China Unicom (Shanghai, China) [162.85 km] 
9633) China Broadband Communications (Shanghai, China) [162.85 km] 
5446) CHINA UNICOM JIANGSU COMPANY (Nanjing, China) [236.11 km] 
5724) ChinaUnicom (Hefei, China) [325.13 km] 
4377) China Mobile Group Anhui Co.,Ltd (Hefei, China) [325.13 km] 
6345) ChinaTelecom.JiangXi (Nanchang, China) [451.09 km] 
7643) China Telecom.JiangXi.Network Center (Nanchang, China) [451.09 km] 
6473) jxtelecom (Nanchang, China) [451.09 km] 
5097) Chinaunicom.jx (Nanchang, China) [451.09 km] 
7230) China Unicom.JiangXi Co.,Ltd (Nanchang, China) [451.09 km] 
4884) China Unicom FuJian (Fuzhou, China) [476.39 km] 
5485) China Unicom,Hubei Branch (Wuhan, China) [564.39 km] 
2589) Far EasTone Telecommunications Co., Ltd (Taoyuan, Taiwan) [589.47 km] 
3921) Taiwan Fixed Network (Taoyuan, Taiwan) [589.47 km] 
第一列为服务器id 后面是服务器的地址信息和距离

如果你要指定某台服务器 可以使用

speedtest-cli --server id号

如:speedtest-cli --server 5300

测试结果如下:

Retrieving speedtest.net configuration... 
Retrieving speedtest.net server list... 
Testing from Hangzhou Alibaba Advertising Co.,Ltd. (114.215.101.64)... 
Hosted by Hangzhou , Zhejiang Unicom (Hangzhou) [4.87 km]: 26.572 ms 
Testing download speed........................................ 
Download: 437.99 Mbit/s 
Testing upload speed.................................................. 
Upload: 4.89 Mbit/s

其中download 与 upload就是你的下载上传速度

丢包率

我们经常会遇到数据传输延迟 失败的问题 这时候经常需要检测丢包率 在windows中跟踪路由一般用tracert命令,在linux中我们可以使用mtr

捏可以使用

mtr -h

来查看mtr的所有参数

mtr -h 提供帮助命令

mtr -v 显示mtr的版本信息

mtr -r 已报告模式显示

mtr -c 设置每秒发送数据包的数量

mtr -s 用来指定ping数据包的大小

mtr -n no-dns不对IP地址做域名解析

mtr -a 来设置发送数据包的IP地址 这个对一个主机由多个IP地址是有用的

mtr -i 使用这个参数来设置ICMP返回之间的要求默认是1秒

mtr -4 IPv4

mtr -6 IPv6

这个工具默认是安装的 当然有些版本的liunx是没有自带该工具 比如centos6.5就没有 通过yum apm等安装即可 当然 源码安装也可以 
mtr默认使用ICMP报文探测

向百度发送数据包 每秒30个 每个1024个字节

mtr -r -c 30 -s 1024 www.baidu.com
效果如下

HOST: AY14041211122443416bZ Loss% Snt Last Avg Best Wrst StDev

  1. 114.215.99.248 0.0% 30 0.6 2.0 0.6 17.2 3.0
  2. 10.106.148.18 0.0% 30 1.0 48.9 0.8 96.2 32.3
  3. 42.120.245.1 0.0% 30 0.8 1.6 0.7 2.8 0.6
  4. 42.120.244.73 0.0% 30 1.4 1.6 0.7 14.3 2.4
  5. 150.138.132.133 63.3% 30 17327 20199 17327 23128 1754.0
  6. 150.138.128.65 0.0% 30 1.8 2.1 1.7 2.6 0.3
  7. 202.97.39.105 0.0% 30 15.9 15.2 13.5 17.7 1.3
  8. ??? 100.0 30 0.0 0.0 0.0 0.0 0.0
  9. 220.191.200.138 0.0% 30 21.0 22.5 21.0 23.9 0.9
    1. ??? 100.0 30 0.0 0.0 0.0 0.0 0.0
    2. 115.239.209.46 56.7% 30 22.4 23.0 22.4 23.5 0.3
    3. ??? 100.0 30 0.0 0.0 0.0 0.0 0.0
    4. 115.239.210.27 40.0% 30 21.9 22.4 21.6 26.8 1.1

第一列:显示的是IP地址和本机域名,这点和tracert很像。

第二列 Loss%:是显示的每个对应IP的丢包率。

第三列 snt:snt等于10,设置每秒发送数据包的数量,默认值是10 可以通过参数 -c来指定。

第四列 Last:显示的最近一次的返回时延。

第五列 Avg:平均值,这个应该是发送ping包的平均时延。

第六列 Best:最好或者说时延最短的时间。

第七列 Wrst:最坏或者说时延最长的时间。

第八列 StDev:标准偏差。










本文转自 chengxuyonghu 51CTO博客,原文链接:http://blog.51cto.com/6226001001/2060151,如需转载请自行联系原作者

网友评论

登录后评论
0/500
评论
余二五
+ 关注