天天看點

Linux traceroute網絡診斷工具詳細介紹

作者:執着的花貓Jp
Linux traceroute網絡診斷工具詳細介紹

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           
Linux traceroute網絡診斷工具詳細介紹

繼續閱讀