Ourren

关注技术,记录生活.

利用MTR分析网络状况

| 留言

平时测试网络状况一般都使用「ping, tracert, nslookup」这几个命令,但是Mtr(My traceroute)是一是一个非常棒的网络连通性判断工具,它结合了ping, traceroute,nslookup 的相关特性。当网络链路出现问题时很多人会用ping命令,可以简单的测试网络的连通性,看下丢包率,但是却无法确定是在哪里出现了问题;有些人就会用tracert命令来查看路由,或者用nslookup命令来查看DNS是否可用;如果你也觉得这三个命令太麻烦的话,那就用mtr吧,并且显示界面很美「没觉得么?」

                           My traceroute  [v0.71]
ts3-142.ts.cn.tlan (0.0.0.0)                           Fri Aug  3 22:39:50 2007
Keys:  Help   Display mode   Restart statistics   Order of fields   quit
                                              Packets               Pings
 Host                                       Loss%  Last   Avg  Best  Wrst StDev
 1. 172.16.76.1                              0.0%   0.5   0.4   0.4   0.5   0.1
 2. 202.108.132.17                           0.0% 179.0  20.2   2.3 179.0  55.8
 3. 172.19.140.69                            0.0%  13.7  10.3   6.2  17.1   3.8
 4. 172.17.0.17                              0.0%   9.3  16.5   8.6  62.3  16.3
 5. 172.16.0.57                              0.0%   9.9  11.2   6.1  21.0   5.4
 6. 192.168.0.25                             0.0%   7.3  11.4   5.1  17.2   4.2
 7. 210.74.176.241                          10.0% 110.1 109.6  92.7 123.3  11.3
 8. 202.96.13.101                           20.0% 104.9 111.8 101.4 126.5   9.3
 9. 202.106.192.233                         30.0% 120.7 113.8  85.5 138.8  17.2
10. 61.148.143.26                           10.0%  99.7 112.0  99.7 120.9   6.9
11. 202.96.8.246                            20.0%  97.0 108.2  92.3 137.4  14.3
12. 210.77.38.126                           11.1% 133.0 113.8  97.0 133.0  11.8
13. 

安装步骤

Mac下直接用brew进行安装「虽然经常吐槽brew各种不如linux下的包管理软件,但是有时候还是不错」:

brew install mtr
sudo /usr/local/Cellar/mtr/0.86/sbin/mtr 8.8.8.8
ln -s /usr/local/Cellar/mtr/0.86/sbin/mtr /usr/bin
sudo mtr 8.8.4.4

Linux貌似就更简单:

yum -y install mtr
apt-get install mtr-tiny

Windows只能用这WinMTR替代下。

相关命令

查看help:

root@ts3-142 ~]# mtr --help
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]

各主要参数解释如下:
--report                       追踪结果以报告模式输出
--report-cycles=COUNT          定义追踪的次数,默认为16
--raw                          使结果以原始格式输出
--split                        将每次追踪的结果分别列出来,不象--report一样,统计整个结果
--no-dns                       只显示ip地址,不解析ip地址对应的主机名
--psize=bytes/-s bytes         定义数据包的大小,单位是字节

日常一般这样子用就可以得到前面的报告结果了。

mtr --report -c 10 -n www.turbolinux.com.cn
//或者
 mtr --report www.google.com
 mtr --no-dns --report google.com