不管是做網(wǎng)絡(luò)管理還是做系統(tǒng)運(yùn)維,都會(huì)出現(xiàn)一些網(wǎng)絡(luò)鏈路問(wèn)題,大多數(shù)人都知道ping命令,可以簡(jiǎn)單的測(cè)試網(wǎng)絡(luò)的連通性,但是卻無(wú)法確定是在哪里出現(xiàn)了問(wèn) 題,有些人就會(huì)用tracert命令來(lái)查看途經(jīng)路由,或者用nslookup命令來(lái)查看dns是否可用(話說(shuō)這命令我都沒(méi)怎么用過(guò)),如果三個(gè)命令都用的 話就太浪費(fèi)時(shí)間了,也太麻煩了,但是如果只用其中一個(gè)命令的話,又不好排查,這時(shí)候就要用到mtr命令了,mtr是 linux中有一個(gè)非常棒的網(wǎng)絡(luò)連通性判斷工具,它結(jié)合了ping, tracert,nslookup 的相關(guān)特性。
首先安裝mtr
# yum -y install mtr
安裝完成后我們來(lái)試一下
# mtr www.sohu.com
看起來(lái)還挺高大上的啊;
其中host列是途經(jīng)的ip或本機(jī)域名
loss%%u5217就是對(duì)應(yīng)ip行的丟包率了,值得一提的是,只有最后的目標(biāo)丟包才算是真正的丟包
last列則是最后一次返回的延遲,按毫秒計(jì)算的
avg列是所有返回時(shí)延的一個(gè)平均值
best列是最快的一次返回時(shí)延
wrst列是最長(zhǎng)的一次返回時(shí)延
stdev列是標(biāo)準(zhǔn)偏差
接下來(lái)就是命令參數(shù)了:
mtr -s 用來(lái)指定ping數(shù)據(jù)包的大小
mtr -n no-dns不對(duì)ip地址做域名解析
mtr -a 來(lái)設(shè)置發(fā)送數(shù)據(jù)包的ip地址 這個(gè)對(duì)一個(gè)主機(jī)由多個(gè)ip地址是有用的
mtr -i 使用這個(gè)參數(shù)來(lái)設(shè)置icmp返回之間的要求默認(rèn)是1秒
mtr -c 是ping的次數(shù)。使用方法跟ping命令一樣
mtr -4 ipv4
mtr -6 ipv6
所謂的ipv4和ipv6,現(xiàn)在基本上用不到呢還,我們基本上來(lái)測(cè)試鏈路連通性都是這么打的
mtr -i 0.1 -n -c 100 ip或域名
這么打的意思是每0.1秒返回一次結(jié)果,ping100次,并且不對(duì)ip地址做域名解析,是不是很高大上呢?小伙伴們快去試試吧~
其中中間線路丟包嚴(yán)重但是目標(biāo)地址不丟包,可能是因?yàn)槟承┲鳈C(jī)路由對(duì)icmp協(xié)議不做處理或者只分配固定限額的資源處理,所以是正常情況。因?yàn)閕cmp協(xié)議請(qǐng)求消耗cpu資源,為了節(jié)省開(kāi)銷,cpu只分配固定資源處理icmp請(qǐng)求