Linux 中使用 traceroute 命令跟蹤目標地址
traceroute 類似于 ping 命令,但是提供了更詳細的信息輸出,它跟蹤從原點到目標系統(tǒng)的路由。當你連接到某個遠程系統(tǒng)時,數(shù)據(jù)會經(jīng)過幾個中間節(jié)點(比如你的路由器,ISP路由等等)的傳輸。
traceroute 一般為系統(tǒng)管理員或者網(wǎng)絡(luò)管理員用于對網(wǎng)絡(luò)進行故障排除。
在 Linux 中安裝 traceroute
在大多數(shù) Linux 發(fā)行版中,traceroute 都沒有被預(yù)安裝,所以需要我們手動安裝。
如果你用的是 Ubuntu,可以使用如下命令安裝:
如果你用的是 Fedora,可以使用如下命令:
下面,我們介紹幾個使用 traceroute 的例子。
使用 traceroute 命令
我們先來介紹一個最基本的例子,使用 traceroute 命令跟蹤一個主機名,它將顯示到達目的地所需的路由器列表(帶IP):
如上圖所示,它需要7個路由器才能到達目的地,默認情況下,它向每個路由器發(fā)送3個包,并返回響應(yīng)所需的時間。
下面我們來看看其他幾個例子。
1、配置等待時間
traceroute 中的默認等待時間為3秒,要修改這個時間,可以使用 -w 選項。比如,我們將等待時間改為 1 秒:
2、更改收發(fā)包的數(shù)量
默認情況下,traceroute 為一個躍點(hop)發(fā)送3個包,如果想更改此行為,可使用 -q 選項。
比如,我們我們將其改為4個數(shù)據(jù)包:
3、指定最大躍點數(shù)
在traceroute中,單個查詢的默認最大跳數(shù)為30,可以擴展到255。使用 -m 選項:
4、指定 TTL
默認情況下,traceroute 將以第一個 TTL 開始,但您可以使用 -f 選項更改此行為。
如下例子,我們從第5個TTL開始跟蹤 google:
?
5、添加備用源IP地址
使用-s 選項添加備用 IP 地址:
??
6、跟蹤時禁用主機名映射到IP地址
如果出于某種原因希望在跟蹤時禁用主機名映射,可以使用 -n 選項:
?
7、通過網(wǎng)關(guān)路由包
可以在要跟蹤路由的域時,使用 -g 選項指定網(wǎng)關(guān)地址。
比如,我們添加 192.168.1.7 作為網(wǎng)關(guān)地址:
8、更改目標端口
可以使用 -p 來指定要跟蹤的目標端口:
9、設(shè)置最大數(shù)據(jù)包長度
默認情況下,traceroute 跟蹤的數(shù)據(jù)包長度為 60 字節(jié)(bytes),可以在目標地址后跟一個數(shù)字(即包大?。﹣硇薷模?/span>
10、禁用探測數(shù)據(jù)包碎片(probe packet fragmentation)
如果你不想允許探測數(shù)據(jù)包碎片化,有一種簡單的方法來實現(xiàn)這個目的,使用 -F 選項:
如果你想要了解 traceroute 是如何工作的,可以參考另一篇指南,這個指南解釋了 traceroute 的工作原理,地址如下: