Linux網絡之ping、traceroute等測式命令詳解

無論你是一個網絡維護人員,還是正在學習TCP/IP協議,瞭解和掌握一些常用的網絡測試命令將會有助於您更快地檢測到網絡故障所在,同時也會有助你您瞭解網絡通信的內幕。

一、ping命令

linux下的ping和windows下的ping稍有區別,linux下ping不會自動終止,需要按ctrl+c終止或者用參數-c指定要求完成的迴應次數。

1.命令格式:ping [參數] [主機名或IP地址]

2.命令功能:ping命令用於:確定網絡和各外部主機的狀態;跟蹤和隔離硬件和軟件問題;測試、評估和管理網絡。如果主機正在運行並連在網上,它就對回送信號進行響應。每個回送信號請求包含一個網際協議(IP)和 ICMP 頭,後面緊跟一個 tim 結構,以及來填寫這個信息包的足夠的字節。缺省情況是連續發送回送信號請求直到接收到中斷信號(Ctrl-C)。

ping 命令每秒發送一個數據報並且爲每個接收到的響應打印一行輸出。ping 命令計算信號往返時間和(信息)包丟失情況的統計信息,並且在完成之後顯示一個簡要總結。ping 命令在程序超時或當接收到 SIGINT 信號時結束。Host 參數或者是一個有效的主機名或者是因特網地址。

很多服務器爲了防止攻擊,一般會關閉對ping的響應。所以ping一般作爲測試連通性使用。ping命令後,會接收到對方發送的回饋信息,其中記錄着對方的IP地址和TTL。TTL是該字段指定IP包被路由器丟棄之前允許通過的最大網段數量。TTL是IPv4包頭的一個8 bit字段。例如IP包在服務器中發送前設置的TTL是64,你使用ping命令後,得到服務器反饋的信息,其中的TTL爲56,說明途中一共經過了8道路由器的轉發,每經過一個路由,TTL減1。

3.命令參數:

-d 使用Socket的SO_DEBUG功能。
-f  極限檢測。大量且快速地送網絡封包給一臺機器,看它的迴應。
-n 只輸出數值。
-q 不顯示任何傳送封包的信息,只顯示最後的結果。
-r 忽略普通的Routing Table,直接將數據包送到遠端主機上。通常是查看本機的網絡接口是否有問題。
-R 記錄路由過程。
-v 詳細顯示指令的執行過程。
* -c 數目:在發送指定數目的包後停止。
* -i 秒數:設定間隔幾秒送一個網絡封包給一臺機器,預設值是一秒送一次。
-I 網絡界面:使用指定的網絡界面送出數據包。
-l 前置載入:設置在送出要求信息之前,先行發出的數據包。
-p 範本樣式:設置填滿數據包的範本樣式。
-s 字節數:指定發送的數據字節數,預設值是56,加上8字節的ICMP頭,一共是64ICMP數據字節。
-t 存活數值:設置存活數值TTL的大小。

二、Traceroute 命令

 Tracert命令用來顯示數據包到達目標主機所經過的路徑(路由器),並顯示到達每個節點(路由器)的時間。命令功能同Ping類似,但它所獲得的信息要比Ping命令詳細得多,它把數據包所走的全部路徑、節點的IP以及花費的時間都顯示出來。該命令比較適用於大型網絡。
           Tracert 先發送 TTL 爲 1 的迴應數據包,當數據包上的 TTL在路由器收到後TTL自動減1 ,一旦某個服務器將TTL減1後,等於了0,路由器應該將“ICMP Time Exceeded”的消息發回源計算機,源計算機就根據收到的信息判斷達到的路由器和所用時間。下次再次發送數據包時,將TTL遞增 1,繼續上述測試,直到目標響應或 TTL 達到最大值,從而確定路由。通過檢查中間路由器發回的“ICMP 已超時”的消息確定路由。某些路由器不經詢問直接丟棄 TTL過期的數據包,這在 Tracert 實用程序中看不到,我們會顯示請求超時的請求信息。下圖所示,我們測試到新浪的路經過了8道路由,同時根據上圖測試ping 新浪時候,TTL=56,說明新浪的TTL初始設置爲64,經過8道路由後到達我們客戶機,還剩下64-8 = 56。下圖中請求超時的反饋信息是因爲路由器對ping命令做了處理,關閉了ping的響應,所以我們收不到發給他的反饋信息。


Traceroute 和 tracert區別:

  1. 在UNIX主機系統下,直接執行命令行: Traceroute hostname 
  2. 在Windows系統下是執行Tracert的命令: Tracert hostname 

參數說明:

tracert [-d] [-h maximum_hops] [-j computer-list] [-w timeout] target_name

-d 指定不對計算機名解析地址。 
-h maximum_hops 指定查找目標的跳轉的最大數目。 
-jcomputer-list 指定在 computer-list 中鬆散源路由。 
-w timeout 等待由 timeout 對每個應答指定的毫秒數。 
target_name 目標計算機的名稱。


 

Traceroute的用法爲: Traceroute [options] <IP-address or domain-name> [data size]

[options]的內容有:

  • [-n]:顯示的地址是用數字表示而不是符號
  • [-v]:長輸出
  • [-p]:UDP端口設置(缺省爲33434)
  • [-q]:設置TTL測試數目(缺省爲3)
  • [-t]:設置測包的服務類型
  • [data size]:每次測試包的數據字節長度(缺省爲38)

三、pathping命令

pathping 命令是一個路由跟蹤工具,它將 ping 和 tracert 命令的功能與這兩個工具所不提供的其他信息結合起來,綜合了二者的功能。pathping會先顯示中間的通過的路由器(類似tracert命令得到的信息),然後對每個中間路由器(節點)發送一定數量的ping包,通過統計他們對ping包響應的數據包來分析通信質量。上面也提到了,有的路由器對ping關閉了響應,所以有的節點的丟包率會達到100%,所以這種一般就是關閉了ping回覆。你可以自己ping試一下。還有,對ping包丟棄程度只是節點本身對ping的處理,並不一定影響他的通信,你可以看到,關閉ping命令節點的下一個節點返回到數據是正常的,說明回覆的包都成功發送回來。總之,pathping 命令在一段時間內將數據包發送到將到達最終目標的路徑上的每個路由器,然後根據從每個躍點返回的數據包計算結果。由於命令顯示數據包在任何給定路由器或鏈接上丟失的程度,因此可以很容易地確定可能導致網絡問題的路由器或鏈接。下圖所示,我們看到,達到第二個就終止了,因爲第二道節點(路由器),不支持ping,然後,程序就終止不在繼續往下探測了。

 

四、nslookup命令

Nslookup命令用於解析域名,一般用來檢測本機的DNS設置是否配置正確。如: nslookup 網站域名,即可解析出網站的IP地址。如圖,可以看出解析www.163.com的時候,可以解析出它所有的IP地址,而如果網路出現異常或者無法收到服務器發送來的信息時候,會出現下面第二張圖片的顯示。服務器和Address代表是解析這些IP地址和域名的DNS服務器信息。比如我使用的DNS是jtjndc007.home.langchao.com, DNS服務器地址是10.100.1.11.
摘自:

https://blog.csdn.net/zhangchenghaopeng/article/details/50548112

https://blog.csdn.net/qq30211478/article/details/78092948

https://blog.csdn.net/zerodanny/article/details/2237686

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章