Linux命令中的mtr命令詳解
一、mtr命令簡介;
mtr 是一個(gè)功能強(qiáng)大的網(wǎng)絡(luò)診斷工具,它結(jié)合了 ping 和 traceroute 的功能,并提供了實(shí)時(shí)、持續(xù)的連接質(zhì)量統(tǒng)計(jì)數(shù)據(jù)。它是排查網(wǎng)絡(luò)問題、定位網(wǎng)絡(luò)瓶頸的利器。mtr(My Traceroute)在單個(gè)界面中同時(shí)展示了數(shù)據(jù)包從源主機(jī)到目標(biāo)主機(jī)所經(jīng)過的每一跳(路由器)的信息,并且會持續(xù)地向每一跳發(fā)送數(shù)據(jù)包,動態(tài)更新統(tǒng)計(jì)結(jié)果,如丟包率、延遲等。與 traceroute 的區(qū)別:
- traceroute:只向每一跳發(fā)送少量數(shù)據(jù)包(默認(rèn)3個(gè)),顯示一次性的路徑和延遲。
- mtr:持續(xù)地向每一跳發(fā)送數(shù)據(jù)包,提供實(shí)時(shí)的、基于統(tǒng)計(jì)的網(wǎng)絡(luò)質(zhì)量視圖,更容易發(fā)現(xiàn)間歇性的網(wǎng)絡(luò)問題。
二、命令語法及參數(shù)說明
1、命令安裝(centos7系統(tǒng)安裝)
[root@ywtools ~]# yum install epel-release && sudo yum install mtr
2、命令語法
#mtr [選項(xiàng)] 目標(biāo)主機(jī)
運(yùn)行 mtr www.baidu.com,你會看到一個(gè)類似這樣的實(shí)時(shí)界面:Host: 經(jīng)過的路由器IP或主機(jī)名。
- Loss%: 到該節(jié)點(diǎn)的丟包率。這是最重要的指標(biāo)之一。
- Snt: 已發(fā)送的數(shù)據(jù)包數(shù)量。
- Last: 最近一個(gè)數(shù)據(jù)包的延遲(毫秒)。
- Avg: 平均延遲。
- Best: 最低延遲。
- Wrst: 最高延遲。
- StDev: 延遲的標(biāo)準(zhǔn)差。值越大,說明網(wǎng)絡(luò)延遲越不穩(wěn)定。
當(dāng)出現(xiàn)網(wǎng)絡(luò)問題時(shí),你需要從第一跳開始逐行往下看。
- 如果第一跳(你的路由器)丟包率就很高,問題可能出在你的本地網(wǎng)絡(luò)。
- 如果中間某一行(例如第4跳)開始出現(xiàn)高丟包率,并且后續(xù)所有跳都有高丟包,那么問題很可能出在那個(gè)節(jié)點(diǎn)或其附近的網(wǎng)絡(luò)。
- 如果只有某一跳丟包率高,但后續(xù)節(jié)點(diǎn)正常,這通常是該路由器有意限制ICMP流量導(dǎo)致的,不一定是真問題(稱為“假丟包”)。

2、參數(shù)說明
| 參數(shù) | 參數(shù)說明 |
|---|---|
| -r,--report | 報(bào)告模式,最常用的模式,生成一次性報(bào)告后退出,便于分享和記錄。 |
| -c | 指定數(shù)據(jù)包數(shù)量,默認(rèn)會發(fā)送10個(gè)包,可以使用 -c 指定數(shù)量。 |
| -n | 不使用DNS反向解析 ,直接顯示IP地址,而不嘗試解析主機(jī)名,可以加快輸出速度。 |
| -4 | 指定使用ipv4協(xié)議 |
| -6 | 指定使用ipv6協(xié)議 |
| -s | 指定數(shù)據(jù)包大小,模擬不同大小的數(shù)據(jù)包,有助于診斷MTU相關(guān)問題。 |
| -m | 設(shè)置最大跳數(shù)(Time-To-Live)。 |
| --interface | 指定源接口或IP (-i) |
| -i | 設(shè)置發(fā)送每個(gè)ICMP包之間的時(shí)間間隔(秒)。 |
| -T | 指定TCP協(xié)議,有些路由器會過濾ICMP包,使用TCP包可能更有效,結(jié)合-P使用 |
| -u | 指定UDP協(xié)議 |
| -P | 指定端口 |
三、使用示例
1、交互模式
在交互模式下,讓它一直運(yùn)行,觀察延遲和丟包率的變化,特別適合排查間歇性問題。

2、報(bào)告模式
報(bào)告模式,快速檢查到目標(biāo)主機(jī)的連通性
#mtr -r -c 10 -i 0.5 google.com

3、診斷到特定網(wǎng)站的延遲和丟包問題
使用報(bào)告模式,不解析DNS,發(fā)送50個(gè)包。
#mtr -r -n -c 50 114.114.114.114

4、懷疑是MTU問題,使用大包測試
如果在大包時(shí)丟包率劇增,而小包正常,可能是路徑上的MTU問題。
#mtr -r -s 1500 www.jd.com

5、目標(biāo)主機(jī)屏蔽了ICMP,使用TCP端口探測
ping不通,但是網(wǎng)站訪問通,可以使用TCP進(jìn)行探測測試。
#mtr -r -T -P 443 www.jd.com

四、寫在最后
MTR 的最大價(jià)值從來不是告訴你“網(wǎng)站能不能訪問”,而是告訴你 “從我這到目標(biāo),中間的哪一段出現(xiàn)了異常”。所以在阿里云售后技術(shù)支持或者運(yùn)營商線路報(bào)障的時(shí)候經(jīng)常會要求使用mtr進(jìn)行路由跟蹤測試,協(xié)助他們進(jìn)行網(wǎng)絡(luò)定位。
到此這篇關(guān)于Linux命令之mtr命令的文章就介紹到這了,更多相關(guān)Linux mtr命令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
linux 使用NSF 映射遠(yuǎn)程磁盤目錄的實(shí)現(xiàn)
下面小編就為大家?guī)硪黄猯inux 使用NSF 映射遠(yuǎn)程磁盤目錄的實(shí)現(xiàn)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02
Linux 怎么實(shí)現(xiàn)添加FTP用戶并設(shè)置權(quán)限的方法
這篇文章主要介紹了Linux 怎么實(shí)現(xiàn)添加FTP用戶并設(shè)置權(quán)限的方法的相關(guān)資料,這里對添加FTP用戶進(jìn)行了步驟詳解,需要的朋友可以參考下2017-01-01
在shell腳本中激活conda虛擬環(huán)境的方法總結(jié)
在Anaconda中conda可以理解為一個(gè)工具,也是一個(gè)可執(zhí)行命令,其核心功能是包管理與環(huán)境管理,下面這篇文章主要給大家介紹了關(guān)于如何在shell腳本中激活conda虛擬環(huán)境的相關(guān)資料,需要的朋友可以參考下2022-08-08
Shell編程基礎(chǔ)語法與正則表達(dá)式文本處理指南
本文詳解Shell編程與正則表達(dá)式在Linux系統(tǒng)中的應(yīng)用,涵蓋函數(shù)、數(shù)組、grep工具及實(shí)戰(zhàn)案例,建議深入學(xué)習(xí)文本處理三劍客和正則進(jìn)階技巧,提升系統(tǒng)管理效率,感興趣的朋友跟隨小編一起看看吧2025-09-09
Shell腳本判斷Linux系統(tǒng)是32位還是64位的幾種方法分享
這篇文章主要介紹了Shell腳本判斷Linux系統(tǒng)是32位還是64位的幾種方法分享,本文共給出了4種方法實(shí)現(xiàn)系統(tǒng)位數(shù)在判斷,需要的朋友可以參考下2014-12-12
Linux系統(tǒng)links和elinks命令的基本使用教程
links和elinks都是Linux系統(tǒng)下的命令行瀏覽器,主要用于在終端中查看網(wǎng)頁內(nèi)容,這篇文章主要介紹了Linux系統(tǒng)之links和elinks命令的基本使用,需要的朋友可以參考下2023-09-09
Shell腳本實(shí)現(xiàn)在Linux系統(tǒng)中自動安裝JDK
這篇文章主要介紹了Shell腳本實(shí)現(xiàn)在Linux系統(tǒng)中自動安裝JDK,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-01-01

