MTR 安装
MTR 是一款网络测试工具,它将 ping 和 traceroute 的功能合并,功能比较强大。
MacOS安装
在 MacOS 下,MTR 没有现成的程序,我们需要通过 Homebrew 来安装。
1、安装 Homebrew:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2、安装 MTR:
brew install mtr brew list mtr /usr/local/Cellar/mtr/0.95/sbin/mtr /usr/local/Cellar/mtr/0.95/sbin/mtr-packet /usr/local/Cellar/mtr/0.95/share/bash-completion/completions/mtr /usr/local/Cellar/mtr/0.95/share/man/ (2 files)
3、MTR 安装完成之后,没有把程序文件复制到 /usr/local/bin 目录下,我们手动复制一下:
cd /usr/local/Cellar/mtr/0.95/sbin cp mtr /usr/local/bin/ cp mtr-packet /usr/local/bin/ or ln -s /usr/local/Cellar/mtr/0.95/sbin/mtr /usr/local/bin/mtr ln -s /usr/local/Cellar/mtr/0.95/sbin/mtr-packet /usr/local/bin/mtr-packet alias mtr='/usr/local/bin/mtr'
4、运行 MTR,由于运行 MTR 需要管理员权限,所以在运行的时候会提示输入密码
sudo mtr chegva.com
Linux安装
Linux 发行版可通过系统自带软件源安装 MTR。
# Debian & Ubuntu apt -y install mtr-tiny # RHEL & CentOS yum -y install mtr
如果软件仓库没有,可以下载 MTR 源码编译安装。详细请查看官方说明。
https://github.com/traviscross/mtr
Windows安装
Windows 下软件名为 WinMTR,其官网 http://winmtr.net/ 早已关闭,但可以在第三方载点下载。
https://sourceforge.net/projects/winmtr/files/
另外还有个分支版本,增加了 IPv6 支持和一些错误修复。
https://github.com/White-Tiger/WinMTR
MTR 使用
sudo mtr chegva.com --report
Start: 2222-11-11T11:55:42+0800
HOST: anzhihe-mac.local Loss% Snt Last Avg Best Wrst StDev
1.|-- 10.231.69.254 80.0% 10 33.1 21.0 8.9 33.1 17.1
2.|-- 10.234.235.69 50.0% 10 39.7 26.1 13.7 39.7 10.2
3.|-- 10.221.0.1 0.0% 10 48.4 28.1 12.5 48.4 12.1
4.|-- 114.247.175.193 0.0% 10 11.8 15.1 10.5 26.7 4.7
5.|-- 123.126.6.249 0.0% 10 20.0 18.3 8.3 28.5 5.7
6.|-- 125.33.185.122 0.0% 10 13.5 24.3 7.1 47.4 15.8
7.|-- 61.49.143.94 0.0% 10 35.5 27.9 10.4 63.3 16.2
8.|-- ??? 100.0 10 0.0 0.0 0.0 0.0 0.0
第一列:HOST
,显示IP地址或者主机名。
第二列:Loss%
,这个结点的丢包率。
第三列:Snt
,发送包的数量。
第四列:Last
,最近一次的延时,单位是毫秒ms。
第五列:Avg
,平均延时,单位是毫秒ms。
第六列:Best
,最低延时,单位是毫秒ms。
第七列:Wrst
,最高延时,单位是毫秒ms。
第八列:StDev
,标准偏差,越大表示延迟波动越大越不稳定。
sudo mtr -o "LRSDJMXINBAW" chegva.com
输入完命令后,MTR 会实时显示网络情况,可使用 ctrl+c 或者 q 退出:
Command: ?|h help p pause (SPACE to resume) d switching display mode e toggle MPLS information on/off n toggle DNS on/off r reset all counters o str set the columns to display, default str='LRS N BAWV' j toggle latency(LS NABWV)/jitter(DR AGJMXI) stats c <n> report cycle n, default n=infinite i <n> set the ping interval to n seconds, default n=1 f <n> set the initial time-to-live(ttl), default n=1 m <n> set the max time-to-live, default n= # of hops s <n> set the packet size to n or random(n<0) b <c> set ping bit pattern to c(0..255) or random(c<0) Q <t> set ping packet's TOS to t u switch between ICMP ECHO and UDP datagrams y switching IP info z toggle ASN info on/off press any key to go back...
几个常用的按键:
按 p 键可以暂停,空格键恢复工作
按 d 键可以切换显示方式
n 开启/关闭 DNS 解析
r 清空所有统计信息,重新统计
c 接数字,表示循环的次数,默认无限循环
i 接数字,设置 ping 的间隔,默认 1s
f 接数字,设置初始的 TTL 值,若设置为 3,则从第三行开始显示
m 接数字,设置最大的 TTL 值
s 接数字,设置包的大小,如果数字小于零,则为随机大小
按 o 键,可以选择可显示的列的种类, 根据提示设置即可:
Fields: LS NABWV <sp>: Space between fields L: Loss Ratio D: Dropped Packets R: Received Packets S: Sent Packets N: Newest RTT(ms) B: Min/Best RTT(ms) A: Average RTT(ms) W: Max/Worst RTT(ms) V: Standard Deviation G: Geometric Mean J: Current Jitter M: Jitter Mean/Avg. X: Worst Jitter I: Interarrival Jitter
例如,选择 丢包率/发包/收包/丢包 最新/最小/最大/平均延时,则需要输入 LSRD NBWA
MTR 参数详解
用法:mtr [参数] hostname
-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
参考: