traceroute
traceroute?指令輸出到目標主機的路由包。Traceroute跟蹤從IP網絡到給定主機的路由數據包。它利用IP協議的生存時間(TTL)字段,并試圖在通往主機的路徑上從每個網關激發ICMP TIME_SUBERS響應。
traceroute6?等價于“?traceroute -6?”
唯一需要的參數是目標主機的名稱或IP地址。探測數據包的總大小(IPv 4默認為60字節,IPv 6為80字節)是一個可選參數。在某些情況下,可以忽略指定的大小或將其增加到最小值。
該程序試圖跟蹤IP數據包將遵循的路由到某些Internet主機,方法是使用一個小的ttl(生命時間)啟動探測包,然后從網關偵聽ICMP“時間超過”的答復。我們以1開頭,然后增加1,直到我們得到一個ICMP“端口不可達”(或TCP重置),這意味著我們到達了“主機”,或者達到了最大值(默認為30跳)。在每個ttl設置處發送三個探針(默認情況下),并打印一行,顯示每個探針的ttl、網關地址和往返時間。在請求時,可以在地址之后添加其他信息。如果探測答案來自不同的網關,則將打印每個響應系統的地址。如果在5.0秒(默認)內沒有響應,則會為該探針打印一個“*”(星號)。
追蹤結束后,可以打印一些附加注釋:!h、!n或!P(主機、網絡或協議不可達)、!s(源路由失敗)、!F(所需碎片化)、!X(管理上禁止通信)、!v(主機優先級沖突)、!C(有效的優先截止),或!(ICMP不可達代碼)。如果幾乎所有的探測器都導致某種無法到達的情況,Traceroute就會放棄并退出。
我們不希望目標主機處理UDP探測包,因此目標端口被設置為一個不太可能的值(您可以使用-p標志更改它)。ICMP或TCP跟蹤不存在這樣的問題(對于TCP,我們使用半開放技術,這樣可以防止目標主機上的應用程序看到我們的探測)。