traceroute命令

稍有計算機常識的人都知道ping命令,是用來檢查自己的主機是否與目標地址接通,自己的主機與目標地址的通訊包通訊速率,所謂的通訊包也就是那些什麼TCP/IP,UDP包。但是路由跟蹤指令traceroute,在windows則是tracert,對於非計算機網絡內行,就不太知道這是幹什麼了。

AD:

本文所有命令實施的大前提是:你現在能夠上網。

稍有計算機常識的人都知道ping命令,是用來檢查自己的主機是否與目標地址接通,自己的主機與目標地址的通訊包通訊速率,所謂的通訊包也就是那些什麼TCP/IP,UDP包,這裏說得通俗一點,比如,就拿這個IT網站csdn來測試一下,則得到如下效果: 

 

但是路由跟蹤指令traceroute,在windows則是tracert,對於非計算機網絡內行,就不太知道這是幹什麼了。

其實路由跟蹤指令,更能展示出自己的主機與目標地址的通訊詳細情況。

在Ubuntu12.04中,Ctrl+Alt+T打開終端,輸入traceroute,如果如下圖所示提示沒有安裝。 

 

那麼,則輸入如下命令,先安裝traceroute,Linux除了必要的東西之外,真的什麼都沒有安裝的!

  1. sudo apt-get install traceroute  

如下圖所示,迅速被刷屏之後,因爲這個路由跟蹤組件,才51KB,你正式可以在Linux中使用traceroute命令 

 

此時,輸入如下命令,測試我的Ubuntu12.04與www.csdn.net的通訊詳細情況,

  1. traceroute -n www.csdn.net 

其中-n代表,僅要看ip地址,不要顯示主機名、域名那些東西,也就是說不要給我顯示網址,則得到如下效果: 

 

可以發現第一條記錄之後,就一堆不可達,那是因爲,我的Ubuntu12.04處於虛擬機中,通過橋接的方式與我的主機Windows 7通訊,虛擬機Ubuntu12.04所有網絡狀態直接繼承主機Windows 7的網絡,根本就不知道Windows 7做什麼,因此只能在Windows 7的cmd中使用相同的tracert路由跟蹤指令做這個實驗。

首先,運行cmd,輸入tracert,發現cmd提示,這不是可運行程序或命令或批處理文件,也就是找不到tracert。這是因爲我的Windows 7x64沒有把windows/system32這個文件夾的內容設置爲cmd的全局變量。 

 

與配置Java、Mysql之流一樣,如下圖所示,右鍵“我的電腦或者計算機”,選擇“屬性或者管理”,選擇“高級”選項卡,打開“環境變量”,在“系統變量”那一欄中找到Path,編輯,補上一個c:\windows\system32\;然後就是各種“確定”。 

 

之後,再運行cmd,輸入tracert,這時候顯示tracert命令的說明,終於可以愉快地進行玩耍了。 

 

輸入如下指令,要求顯示,如果本主機要和www.csdn.net這個網址通訊,整個通訊包的流向。

  1. tracert -d -h 15 www.csdn.net  

其中,要求只顯示IP,別給我顯示網址,追蹤15次,無論如何都打斷。

那麼,得到如下結果。這個結果怎麼看呢?

首先第一列,也就是最左列那個1,2,3,4,5...就是通訊包第1,2,3,4,5...站,也就是通訊包第1,2,3...跳處於的路由器。最後一列,也就是最後一列,也就是一個一個通訊包的車站,也就是傳說中的路由器。中間的3個時間,分別代表3個被實驗的通訊包,彼此之間相互不影響,站與站之間的通訊時間,也就是上一個路由器到下一個路由器的通訊時間。

其中,這個路由器的IP,你完全可以打開某個搜索引擎,直接輸入,則能夠馬上顯示其IP對應的位置。

綜上所述,以下結果所對應的真實情況爲:

1、一開始通訊包從本主機出發,也就是從廣州某高校內的某個單位的主機出發,

2、來到了網關,也就是廣州某高校內的某個單位的總路由器

3-7、之後根據本高校的網絡設置,找到本高校的外網出口,來到廣州電信的路由器。

8-10、廣州電信接到這個通訊包,就幫我尋找www.csdn.net這個地址的IP,IP可以明顯看到從183.63.96.129迅速跳到61.144.3.53,很明顯是從區級單位的路由器跳到省級單位的路由器。儘管這些都是廣州電信的IP,但誰叫廣州是省會,如果我在某個非省會的城市做這個實驗。我很有預感通訊包肯定被扔到省級單位的路由器。

11、由於CSDN在廣東沒有配自己的服務器嘛,因此廣州電信一直未能幫我找到其服務器所在地址。所以廣州電信就把我這個包扔到中國總的路由器,尋找其位置。

12-13、之後,在國家級的路由器,搞了“很久”,超過100ms對於光纖來說就是“很久”,都沒有給我反饋出結果,然後我的主機一直在等待。

14-15、之後國家級的路由器不知道爲何先去探測澳洲IP,然後沒找到纔給我扔到北京總部路由器。大概是14-15同時進行的。也就是國家級的路由器在探測國內IP的同時,在探測國外IP。 

 

之後由於我設置了追蹤15次,無論如何都打斷,因此路由到這裏就停止了。我當然不爽,這個通訊包來到北京之後還沒有輸出來,於是再輸入如下指令,不限制追蹤次數,再測一次。

  1. tracert -d www.csdn.net 

很明顯前15次,除了時間以外,根本就不會有任何差別的。就像你平時怎麼上班下班的,你今天還是會怎麼上班下班,除非你是剛上班的,還沒有找到一條通勤路線,或者有什麼事情。以下是接下去的結果: 

 

16、來到北京聯通之後,發現csdn的服務器是電信服務器,則扔到電信。其實綜合15與16兩步已經可以推測到北京地區的總服務器居然是聯通服務器?電信的包居然要聯通經手纔到電信?不知道爲什麼呢?

17、之後更有意思的是,來到北京電信之後,發現這個包,還有所謂“263網絡通信”經手,用某搜索引擎查了下,發現這個“263網絡通信”原來是提供網絡支持、雲服務等公司。我開始推測csdn應該是利用,雲,來爲我們廣大的程序猿提供服務的。

18、最後纔到達114.112.73.194,csdn.net的路由器。

這與上面的ping結果是一致的: 

 

雖然我們人看起來,這似乎是一個很漫長的過程,畢竟我們人,現在從廣州到北京,最快也要3個小時,還沒算市內通訊時間,還要耗費千五大洋上下……但是,對於網絡的通訊包來說,僅僅是1s內的事情。這必須先謝郭嘉,讓我們2000公里之外的網民能在1s內,幾乎沒花幾個錢就能通訊。

下面再對一個你的網址進行tracert實驗結束本文,比如,我對我的主機說,我要與www.google.com.hk這個網址通信會出現什麼結果呢?

結果如下所示: 

 

去到廣州電信省級路由的時候,還是好好的,與上面與www.csdn.net愉快玩耍一樣,順順利利地來到了廣州省級路由。

然後,不知道爲何馬上給扔到尼泊爾災區呢?

這……

估計這個IP是僞裝的,如果去到這個IP,通訊包就再也找不到任何通訊路由器,被關進小黑屋了……

原因是什麼你懂得。


轉載地址:http://network.51cto.com/art/201505/476087_all.htm

發佈了24 篇原創文章 · 獲贊 29 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章