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