Linux traceroute指令是一個網絡故障排除實用工具,它可以幫助我們确定到達目的地所需的跳數和資料包傳輸路徑。它用于顯示資料是如何從本地機器傳輸到遠端機器的。加載網頁是traceroute的常見示例之一。網頁加載通過網絡和路由器傳輸資料。traceroute可以顯示網絡上路由器的路由、IP位址和主機名。它可以用于診斷網絡問題。
文法::
traceroute [OPTION...] HOST
選項:
traceroute指令支援以下指令行選項:
-f、 --第一跳=NUM:用于設定初始跳距。
-g、 --gateways=GATES:用于顯示松散源路由的網關清單。
-I, --icmp:指定使用icmp ECHO作為探測。
-m、 --最大跳數=NUM:用于設定最大跳數,預設為64。
-M、 --type=METHOD:它為traceroute操作指定METHOD(icmp或udp),預設方法是udp。
-p、 --port=port:定義為使用目的port端口,預設port為33434。
-q、 --trys=NUM:用于每跳轉發NUM個探測資料包,預設值為3。
--resolve-hostnames:用于解析主機名。
-t、 --tos=NUM:用于将服務類型(tos)設定為NUM。
-w、 --wait=NUM:用于以秒為機關等待響應,預設值為3。
-?, --help:它用于顯示幫助手冊,其中包含對支援的指令行選項和用法的簡要描述。
--usage:它顯示一條簡短的用法消息。
-V、 --version:用于顯示traceroute的版本資訊。
安裝traceroute
指令traceroute不是Linux系統的預設實用程式。要使用traceroute,我們需要手動安裝它。要安裝它,請執行以下指令之一:
sudo apt install inetutils-traceroute
sudo apt install traceroute
上面的指令将在我們的系統上安裝traceroute實用程式。成功安裝後,輸出将如下所示:
[root@localhost ~]# yum install traceroute
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.ustc.edu.cn
* extras: mirrors.ustc.edu.cn
* updates: mirrors.aliyun.com
base | 3.6 kB 00:00:00
docker-ce-stable | 3.5 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
docker-ce-stable/7/x86_64/primary_db | 98 kB 00:00:00
Resolving Dependencies
--> Running transaction check
---> Package traceroute.x86_64 3:2.0.22-2.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
==================================================================================================================================================================================================================
Package Arch Version Repository Size
==================================================================================================================================================================================================================
Installing:
traceroute x86_64 3:2.0.22-2.el7 base 59 k
Transaction Summary
==================================================================================================================================================================================================================
Install 1 Package
Total download size: 59 k
Installed size: 92 k
Is this ok [y/d/N]: y
Downloading packages:
traceroute-2.0.22-2.el7.x86_64.rpm | 59 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : 3:traceroute-2.0.22-2.el7.x86_64 1/1
Verifying : 3:traceroute-2.0.22-2.el7.x86_64 1/1
Installed:
traceroute.x86_64 3:2.0.22-2.el7
Complete!
[root@localhost ~]#
它是如何工作的?
要跟蹤連接配接的網絡主機的路由,請輸入連接配接的伺服器名稱或IP位址。
例如,要跟蹤伺服器“baidu.com”的路由:
traceroute baidu.com
上面的指令将顯示給定路由上的跳數、資料包和許多其他資訊。輸出如下:
[root@localhost ~]# traceroute baidu.com
traceroute to baidu.com (110.242.68.66), 30 hops max, 60 byte packets
1 gateway (192.168.140.254) 1.732 ms 1.762 ms 1.807 ms
2 192.4.1.1 (192.4.1.1) 1.600 ms 1.684 ms 1.748 ms
3 192.4.1.5 (192.4.1.5) 0.428 ms 0.383 ms 0.408 ms
4 * * *
5 * * *
6 * * *
7 * * *
8 * * *
9 * * *
10 * * *
11 * * *
12 * * *
13 * * *
14 * * *
15 * * *
16 * * *
17 * * *
18 * * *
19 * * *
20 * * *
21 * * *
22 * * *
23 * * *
24 * * *
25 * * *
26 * * *
27 * * *
28 * * *
29 * * *
30 * * *
[root@localhost ~]#
第一行顯示要到達的主機名和IP位址,traceroute指令要嘗試的躍點,以及要發送的資料包的大小。從第二行開始,每一行都顯示一個到目的地的躍點。主機名後面跟着主機的IP位址,往返時間。往返時間是發送信号所需的時間和對主機做出響應所需時間的總和。預設情況下,它為每個主機發送三個資料包,是以列出了三個響應時間。“*”符号表示資料包丢失。資料包丢失的原因是網絡中斷、網絡擁塞的高流量,或者防火牆正在減少流量。在大量資料包丢失的情況下,traceroute會将錯誤顯示為“未到達目的地”。
使用IPv6跟蹤
路由“6”選項用于使用IPv6協定跟蹤到主機網絡的路由。考慮以下指令:
traceroute6 baidu.com
使用Ipv4跟蹤
路由“4”選項用于使用Ipv6協定跟蹤到主機網絡的路由:
traceroute 4 baidu.com
禁用IP位址和主機名映射
“n”選項用于禁用IP位址與主機名映射:
traceroute n baidu.com
設定每個躍點的查詢數
“-q”選項用于設定每個躍點的查詢數:
traceroute -q 2 baidu.com
設定響應等待時間
“-w”選項用于設定traceroute中的響應等待時間。它将指定響應探測的等待時間(以秒為機關):
traceroute -w 1 baidu.com
指定要使用的接口
“i”選項用于設定traceroute應使用的網絡接口。如果沒有設定,它将根據路由表設定接口。考慮以下指令:
traceroute i ens169 baidu.com
設定初始TTL值
我們可以設定初始TTL(生存時間)值,而不是預設值。它會跳過一些跳躍。通常,對于相應的一組測試,它被設定為一、二、三,依此類推。是以,如果我們将其設定為7,第一個測試将嘗試跳7,并跳過從1到6的跳:
traceroute -f 7 baidu.com
設定最大躍點數
“-m”選項用于設定資料包到達目的地的最大躍點數。最大躍點數的預設值為30:
traceroute -m 7 baidu.com
擷取幫助
要顯示包含用法和支援選項摘要的幫助手冊:
traceroute --help