2012-11-06

MTR - Linux 的 tracert 工具

阿舍之前,因為 Ubuntu 沒有內建像 Windows 的 tracert 指令的程式,阿舍還自己去安裝了 traceroute 這支程式來用,後來,阿舍才知道,其實,Ubuntu 不論是Server 還是 Desktop 版,都有預載一支叫做「MTR」的程式,而這支 MTR 程式就可以用達到比 Windows 的 tracert還多的功能哩 !

MTR 監測畫面

如前面所說,Ubuntu 應該是已經有預載了,安裝好 Ubuntu 就應該不需要再自己安裝了,如果不確定,或是真的沒有預載的話,請用下面的指令來安裝,MTR 預設是沒有圖型界面的,因此,安裝完成後,並不會出現在選單上哩 !

sudo apt-get install mtr-tiny

安裝好之後,只要和下面一樣,用 mtr 加上要偵測的電腦主機名稱或 IP 位址,就會進入顯示從你的電腦到目的電腦問的路由資訊(如上圖),然後,只要不按 q 來離開 ,MTR 就會一直出封包來進行測試,所以,如果公司裡有一些放在外面 "雲端" 的主機的話,就可以透過這種方式來簡單的監控哩!

mtr  arthurtoday

MTR 是透過定時送出封包並接受各個路由的回應情形來達到檢測的目的,然後,把取得的回應資訊顯示在畫面上,網管人員可以利用這些資訊來找出封包繞經的方式及路由器的運作情形,透過 MTR 提供的資訊,可以幫助網管人員對網路的狀況做簡單的除錯,以下就是 MTR畫面上所顯示的欄位資訊的說明。

Loss% 
封包傳送出去未回應(遺失)的比率,越高表示那個路由點的狀況很糟,要想辦不經過那裡。

Snt 
已傳送幾次封包來進行測試。

Last 
最後一個封包花費的時間。

Avg 
傳送每一個封包平均所花費的時間。

Best 
傳輸時間花最短的那一次的所花費時間。

Wrst 
傳輸時間最長(最差) 那一次的所花費時間。

StDev
標準差,這個數字越高,表示平均值的可信度就不夠高。

如果在 MTR 出現的路由中,有出現「???」而沒有顯示主機名稱或 IP 位址的話,通常,就表示路由的設定可能有問題,使得封包到不了目的地,或者是該路由器超過時間未回應,但也可能是那台路由器的設定有問題造成的哩 ! 但是,也可能是該路由器有設定不回應 Ping (ICMP) 封包哩 !

除了用即時監控的方式來查看之外,也可以用只顯示一次的方式來查詢,操作指令如下,用這種方式的查詢,MTR 預設會以傳送10次封包的方式來做檢測,所以,在 Snt 那一欄所顯示的,就會都是 10。

mtr  -r  arthurtoday.com

MTR 所顯示的路由,預設是會用主機名稱來顯示,如果希望用 IP 位址來顯示的話,就要下面這個方式

mtr  -n  -r arthurtoday.com

而如果想要多傳幾次或少傳幾次封包的話,可以利用「-c」參數,後面加上數字的方式來指定,操作指令如下。

mtr  -c 3 -r arthurtoday.com

阿舍覺得這個 MTR 算是簡單易用,提供的資訊也夠用,因此,阿舍十分建議網管人員可以稍微花點時間來學習或瞭解一下,應該會很實用的,另外,MTR 也有 Windows 的版本,如果有需要的話,可以到這裡來下載和安裝哩 !

參考資料:
http://library.linode.com/linux-tools/mtr
http://manpages.ubuntu.com/manpages/gutsy/man8/mtr.8.html
http://anthonyrhook.com/blog/2010/10/12/mtr-linux-network-diagnostic-tool/

推薦閱讀


有疑問? 問題還是沒解決嗎? 歡迎下方留言提問和討論 😁

2 則留言 :

arnose 提到...

因為不叫traceroute,叫tracepath...:p

ayubiz 提到...

OMG ! 阿舍現在才知道。謝啦 ! ^^=

張貼留言

歡迎留言提問和討論 .... 😁