1. 程式人生 > >【Linux】關於路由跟蹤指令traceroute

【Linux】關於路由跟蹤指令traceroute

               

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

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


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

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

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


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

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


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

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這個網址通訊,整個通訊包的流向。

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

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://www.captainbed.net

這裡寫圖片描述