❶ 路由跟蹤命令traceroute / tracert
通過traceroute我們可以知道信息從你的計算機到互聯網另一端的主機是走的什麼路徑。
當然每次數據包由某一同樣的出發點(source)到達某一同樣的目的地(destination)走的路徑可能會不一樣,
但基本上來說大部分時候所走的路由是相同的。
linux系統中,我們稱之為traceroute,在MS Windows中為tracert。
traceroute通過發送小的數據包到目的設備直到其返回,來測量其需要多長時間。
一條路徑上的每個設備traceroute要測3次。輸出結果中包括每次測試的時間(ms)和設備的名稱(如有的話)及其IP地址。
說明:
記錄按序列號從1開始,每個紀錄就是一跳 ,每跳錶示一個網關,我們看到每行有三個時間,單位是ms,其實就是-q的默認參數。
探測數據包向每個網關發送三個數據包後,網關響應後返回的時間;如果您用 traceroute -q 4 www.58.com ,表示向每個網關發送4個數據包。
有時我們traceroute 一台主機時,會看到有一些行是以星號表示的。
出現這樣的情況,可能是防火牆封掉了ICMP的返回信息,所以我們得不到什麼相關的數據包返回數據。
有時我們在某一網關處延時比較長,有可能是某台網關比較阻塞,也可能是物理設備本身的原因。
當然如果某台DNS出現問題時,不能解析主機名、域名時,也會 有延時長的現象;
您可以加-n 參數來避免DNS解析,以IP格式輸出數據。
如果在區域網中的不同網段之間,我們可以通過traceroute 來排查問題所在,是主機的問題還是網關的問題。
如果我們通過遠程來訪問某台伺服器遇到問題時,我們用到traceroute 追蹤數據包所經過的網關,提交IDC服務商,也有助於解決問題;
但目前看來在國內解決這樣的問題是比較困難的,就是我們發現問題所在,IDC服務商也不可能幫助我們解決。
說明:
Traceroute的工作原理:
Traceroute最簡單的基本用法是:traceroute hostname
Traceroute程序的設計是利用ICMP及IP header的TTL(Time To Live)欄位(field)。
首先,traceroute送出一個TTL是1的IP datagram
(其實,每次送出的為3個40位元組的包,包括源地址,目的地址和包發出的時間標簽)到目的地,
當路徑上的第一個路由器(router)收到這個datagram時,它將TTL減1。此時,TTL變為0了,
所以該路由器會將此datagram丟掉,並送回一個「ICMP time exceeded」消息
(包括發IP包的源地址,IP包的所有內容及路由器的IP地址),traceroute 收到這個消息後,
便知道這個路由器存在於這個路徑上,接著traceroute 再送出另一個TTL是2 的datagram,
發現第2 個路由器...... traceroute 每次將送出的datagram的TTL 加1來發現另一個路由器,
這個重復的動作一直持續到某個datagram 抵達目的地。當datagram到達目的地後,
該主機並不會送回ICMP time exceeded消息,因為它已是目的地了,那麼traceroute如何得知目的地到達了呢?
Traceroute在送出UDP datagrams到目的地時,它所選擇送達的port number 是一個一般應用程序都不會用的號碼(30000 以上),
所以當此UDP datagram 到達目的地後該主機會送回一個「ICMP port unreachable」的消息,
而當traceroute 收到這個消息時,便知道目的地已經到達了。所以traceroute 在Server端也是沒有所謂的Daemon 程式。
Traceroute提取發 ICMP TTL到期消息設備的IP地址並作域名解析。
每次 ,Traceroute都列印出一系列數據,包括所經過的路由設備的域名及 IP地址,三個包每次來回所花時間。
❷ Linux系統中traceroute命令使用詳解
Linux系統中traceroute命令可以追蹤到網路數據包的路由途徑。下面由我為大家整理了linux系統中traceroute命令使用詳解,希望對大家有幫助!
Linux系統中traceroute命令使用詳解
1.命令格式:
traceroute[參數][主機]
2.命令功能:
traceroute 指令讓你追蹤網路數據包的路由途徑,預設數據包大小是40 Bytes, 用戶可另行設置。
具體參數格式:traceroute [-dFlnrvx] [-f<存活數值>] [-g<網關>][-i<網路界面>][-m<存活數值>][-p<通信埠>][-s<來源地址>][-t<服務類型>][-w<超時秒數>][主機名稱或IP地址][數據包大小]
3.命令參數
-d使用socket 層級的排錯功能
-f設置第一個檢測數據包的存活數值TTL的大小
-F設置勿離段位----我也不知道啥是勿離段位,查了下沒查到什麼信息^^
-g設置來源路由網關,最多可設置8個
-i使用指定的網路界面送出數據包
-I使用ICMP回應取代UDP資料信息
-m設置檢測數據包的最大存活數值TTL 的大小
-n直接使用IP地址而非主機名稱
-p設置UDP傳輸協議的通信埠
-r忽略普通的routing table,直接將數據包送到遠端主機上
-s設置本地主機送出數據包的IP地址
-t設置檢測數據包的TOS數值
-v詳細顯示指令的執行過程
-w設置等待遠端主機回報的時間
-x開啟或關閉數據包的正確性檢驗
linux系統中traceroute命令實例
實例1:traceroute 用法簡單,最常用的用法
命令:traceroutewww.google.com
說明:
記錄按序列號從1開始,每個記錄就是一跳,每跳錶示一個網關,我們看到每行有三個時間,單位是 ms,其實就是 -q 的默認參數。探測數據包向每個網關發送三個數據包後,網關響應後返回的時間;如果您用 traceroute -q 4 www.google.com, 表示向每個網關發送4個數據包
有時我們 traceroute 一台主機時,會看到有一些行是以星號表示的。出現這種情況,可能是防火牆封掉了 ICMP的返回信息,所以我們得不到什麼相關的數據包返回數據。
有時我們在某一網關處延時比較長,有可能是某台網關比較阻塞,也可能是物理設備本身的原因,當然如果某台DNS出現問題時,不能解析主機名、域名時,也會有延時長的現象;您可以加 -n 參數來避免DNS 解析,以 IP格式 輸出數據。
如果在區域網中的不同網段之間,我們可以通過 traceroute 來排查問題所在,是主機的問題還是網關的問題。如果我們通過遠程來訪問某台伺服器遇到問題時,我們用到 traceroute 追蹤數據包所經過的網關,提交 IDC 服務商,也有助於解決問題;但目前看來國內解決這樣的問題是比較困難的,就是我們發現問題所在,IDC服務商也不可能幫助我們解決。
實例2:跳數設置
命令:
traceroute -m 10 www..com
實例3:只顯示IP 地址,不查主機名DNS
命令:traceroute -n www..com
實例4:探測包使用的基本UDP埠設置6888
命令:traceroute -p 6888 www..com
實例5:把探測包的個數設置為4個
命令:traceroute -q 4 www..com
實例6:繞過正常的路由表,直接發送到網路相連的主機
命令:traceroute -r www..com
實例7:把對外發探測包的等待響應時間設置為3秒
命令:traceroute -w 3 www..com
補充:linux系統中traceroute 的工作原理
traceroute 程序的設計是利用 ICMP 及IP header 的TTL(time to live)欄位(field)。首先,traceroute 送出一個 TTL 是1 的IP datagram(每次送的的是3個 40位元組的包,包括源地址,目的地址和包發出的時間標簽)到目的地,當路徑上的第一個路由器(router)收到這個 datagram 時,它將TTL減少 1,此時,TTL變為0了,所以該路徑會將次 datagram 丟掉,並送回一個 【ICMP time exceeded】消息,traceroute 收到這個消息後,便知道這個路由器存在於這個路徑上,接著traceroute 再送出另一個 TTL為 2 的 datagram ,發現第二個路由器,然後一直重復執行這種操作,直到某個datagram 抵達目的地。
在traceroute 送出 UDP datagram 到目的地時,它所選擇送達的 port number 是一個一般應用程序都不會用的號碼,所以當此UDP datagram到達目的地後該主機會送回一個 ICMP port unreachable 的消息,而當traceroute 收到這個消息時,便知道目的地已經到達,所以 traceroute 在 server 端也就沒有所謂的 daemon 程式。
traceroute 通過計算 ICMP TTL 到期消息設備的IP 地址並做域名解析。每次,traceroute 都列印出一系列數據,包括所經過的路由設備的域名及 IP 地址,三個包每次來回所花時間。
❸ linux為了確定網路層經過的路由器數目應用什麼命令
Tracert為路由跟蹤程序,用於確定本地主機到目標主機經過哪些路由結點。在Linux操作系統中,對應的命令為Traceroute,tracert為windows系統下的命令。Tracert是利用ICMP和TTL進行工作的。首先tracert會發出TTL值為1的ICMP數據報(包含40個位元組,包括源地址、目標地址和發出的時間標簽,一般會連續發3個包)。當到達路徑上的第一個路由器時,路由器會將TTL值減1,此時TTL值變成0,該路由器會將此數據報丟棄,並返回一個超時回應數據報(包括數據報的源地址、內容和路由器的IP地址)。當
tracert收到該數據報時,它便獲得了這個路徑上的第一個路由器的地址。接著,tracert再發送另一個TTL為2的數據報,第一個路由器會將此數據報轉發給第二個路由器,而第二個路由器收到數據報時,TTL為0。第二個路由器便會返回一個超時回應數據報,從而tracert便獲得了第二個路由器的地址。Tracert每次發出數據報時便會將TTL加1(一般每次都是發3個數據報),來發現下一個路由器。這個動作一直重復,直到到達目的地或者確定目標主機不可到達為止。當數據報到達目的地後,目標主機並不返回超時回應數據報。Tracert在發送數據報時,會選擇一個一般應用程序不會使用的號碼(30000以上)來作為接收埠號,所以當到達目的地後,目標主機會返回一個ICMP port unreachable(埠不可達)的消息。當tracert收到這個消息後,就知道目的地已經到達了。
Tracert會提取ICMP的超時回應數據報中的IP地址並作主機名解析(用-d參數表示不解析主機名,解析主機名會耽誤一些時間),然後將所經過的路由器的主機名及IP地址、數據報每次往返花費的時間顯示出來。Tracert有一個固定的等待響應時間,如果這個時間過了,tracert就會輸出「*」來表示某個設備沒有在規定的時間內作出響應,然後tracert會將TTL值加1,繼續進行檢測。
通過tracert命令,我們便知道源地址到目的地址所經過的路徑。雖然數據報傳輸時,經過的路徑並不是每次都一樣,但是大部分時間是一樣的。在目標主機響應時,tracert會顯示完整的經過的理由以及到每個路由所花費的時間。如果目標主機沒有響應,tracert仍會嘗試尋找所經過的路徑。
B.Tracert結果的實際意義
網路不穩定時,可以看出具體哪些結點不穩定,以及不穩定的結點的上一個結點和下一個結點分別是在什麼位置,由此即可大致判斷出不穩定的網路結點在什麼位
置。我們可以通過查詢IP地址的網站如http://www.iplocation.net/(查國外IP比較准)或者ip138.com(查國內IP比
較准)查詢下相應結點的位置。
tracert命令參數說明
重點掌握-d參數即可,它表示不解析IP對應的主機名。
-d 指定不將IP解析到主機名,運行更快
-h maximum_hop 指定最大躍點數
❹ traceroute命令與ping命令的區別
traceroute命令與ping命令的區別為:用途不同、內容不同、適用范圍不同。
一、用途不同
1、traceroute命令:traceroute命令用來顯示數據包到達目標主機所經過的路徑(路由器)情況。
2、ping命令:ping命令主要是用來查看到目的地址的時延和丟包情況。
二、內容不同
1、traceroute命令:traceroute命令獲取到數據包所走的全部路徑、節點的IP以及花費的時間。
2、ping命令:ping命令獲取到目的地址的IP地址和指定IP包被路由器丟棄之前允許通過的最大網段數量。
三、適用范圍不同
1、traceroute命令:traceroute命令適用於大型網路,測試是否和代理伺服器聯通。
2、ping命令:ping命令適用於中小型網路,測試網卡是否正常工作。
❺ 關於tracert命令
Tracert(跟蹤路由)是路由跟蹤實用程序,用於確定 IP 數據報訪問目標所採取的路徑。Tracert 命令用 IP 生存時間 (TTL) 欄位和 ICMP 錯誤消息來確定從一個主機到網路上其他主機的路由.其命令格式如下: tracert [-d] [-h maximum_hops] [-j computer-list] [-w timeout] target_name
編輯本段參數介紹
-d 指定不將地址解析為計算機名. -h maximum_hops 指定搜索目標的最大躍點數. -j computer-list 指定沿computer-list 的稀疏源路由. -w timeout 每次應答等待timeout指定的微秒數. target_name 目標計算機的名稱. 最簡單的用法就是"tracert hostname",其中"hostname"是計算機名或想跟蹤器路徑的計算機的IP地址,tracert將返回他到達目的地的各種IP地址. Tracert命令詳解 該診斷實用程序將包含不同生存時間 (TTL) 值的 Internet 控制消息協議 (ICMP) 回顯數據包發送到目標,以決定到達目標採用的路由。要在轉發數據包上的 TTL 之前至少遞減 1,必需路徑上的每個路由器,所以 TTL 是有效的躍點計數。數據包上的 TTL 到達 0 時,路由器應該將「ICMP 已超時」的消息發送回源系統。Tracert 先發送 TTL 為 1 的回顯數據包,並在隨後的每次發送過程將 TTL 遞增 1,直到目標響應或 TTL 達到最大值,從而確定路由。路由通過檢查中級路由器發送回的「ICMP 已超時」的消息來確定路由。不過,有些路由器悄悄地下傳包含過期 TTL 值的數據包,而 tracert 看不到。 tracert [-d] [-h maximum_hops] [-j computer-list] [-w timeout] target_name 使用 tracert 跟蹤網路連接 Tracert(跟蹤路由)是路由跟蹤實用程序,用於確定 IP 數據報訪問目標所採取的路徑。Tracert 命令用 IP 生存時間 (TTL) 欄位和 ICMP 錯誤消息來確定從一個主機到網路上其他主機的路由。 Tracert 工作原理 通過向目標發送不同 IP 生存時間 (TTL) 值的「Internet 控制消息協議 (ICMP)」回應數據包,Tracert 診斷程序確定到目標所採取的路由。要求路徑上的每個路由器在轉發數據包之前至少將數據包上的 TTL 遞減 1。數據包上的 TTL 減為 0 時,路由器應該將「ICMP 已超時」的消息發回源系統。 Tracert 先發送 TTL 為 1 的回應數據包,並在隨後的每次發送過程將 TTL 遞增 1,直到目標響應或 TTL 達到最大值,從而確定路由。通過檢查中間路由器發回的「ICMP 已超時」的消息確定路由。某些路由器不經詢問直接丟棄 TTL 過期的數據包,這在 Tracert 實用程序中看不到。 Tracert 命令按順序列印出返回「ICMP 已超時」消息的路徑中的近端路由器介面列表。如果使用 -d 選項,則 Tracert 實用程序不在每個 IP 地址上查詢 DNS。 在下例中,數據包必須通過兩個路由器(10.0.0.1 和 192.168.0.1)才能到達主機 172.16.0.99。主機的默認網關是 10.0.0.1,192.168.0.0 網路上的路由器的 IP 地址是 192.168.0.1。 C:\>tracert 172.16.0.99 -d Tracing route to 172.16.0.99 over a maximum of 30 hops 1 2s 3s 2s 10,0.0,1 2 75 ms 83 ms 88 ms 192.168.0.1 3 73 ms 79 ms 93 ms 172.16.0.99 Trace complete. 用 tracert 解決問題 可以使用 tracert 命令確定數據包在網路上的停止位置。下例中,默認網關確定 192.168.10.99 主機沒有有效路徑。這可能是路由器配置的問題,或者是 192.168.10.0 網路不存在(錯誤的 IP 地址)。 C:\>tracert 192.168.10.99 Tracing route to 192.168.10.99 over a maximum of 30 hops 1 10.0.0.1 reports:Destination net unreachable. Trace complete. Tracert 實用程序對於解決大網路問題非常有用,此時可以採取幾條路徑到達同一個點。 Tracert 命令行選項 Tracert 命令支持多種選項,如下表所示。 tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] target_name -d 指定不將 IP 地址解析到主機名稱。 -h maximum_hops 指定躍點數以跟蹤到稱為 target_name 的主機的路由。 -j host-list 指定 Tracert 實用程序數據包所採用路徑中的路由器介面列表。 -w timeout 等待 timeout 為每次回復所指定的毫秒數。 target_name 目標主機的名稱或 IP 地址。 使用 tracert 命令跟蹤路徑 打開 命令提示符,然後鍵入: tracert host_name 或者鍵入 tracert ip_address 其中 host_name 或 ip_address 分別是遠程計算機的主機名或 IP 地址。 例如,要跟蹤從該計算機到的連接路由,請在命令提示行鍵入: tracert [url]
編輯本段注意
要打開「命令提示符」,請單擊「開始」,指向「程序」、「附件」,然後單擊「命令提示符」。 tracert 命令跟蹤 TCP/IP 數據包從該計算機到其他遠程計算機所採用的路徑。tracert 命令使用 ICMP 響應請求並答復消息(和 ping 命令類似),產生關於經過的每個路由器及每個躍點的往返時間 (RTT) 的命令行報告輸出。 如果 tracert 失敗,可以使用命令輸出來幫助確定哪個中介路由器轉發失敗或耗時太多。
編輯本段參數
/d 指定不將地址解析為計算機名。 -h maximum_hops 指定搜索目標的最大躍點數。 -j computer-list 指定沿 computer-list 的稀疏源路由。 -w timeout 每次應答等待 timeout 指定的微秒數。 target_name 目標計算機的名稱
擴展閱讀:
1
http://ke..com/view/41.htm?fr=ala0_1