我是如何使用Wireshark軟件的
01簡介
這篇文章介紹一個好用的抓包工具Wireshark, 用來獲取網(wǎng)絡(luò)數(shù)據(jù)封包,包括HTTP、TCP、UDP等網(wǎng)絡(luò)協(xié)議包。
開始界面
wireshark是捕獲機器上的某一塊網(wǎng)卡的網(wǎng)絡(luò)包,當你的機器上有多塊網(wǎng)卡的時候,你需要選擇一個網(wǎng)卡。直接雙擊上面的某個網(wǎng)卡即可。
02Wireshark窗口
Wireshark 窗口介紹:
WireShark 主要分為這幾個界面:
1. Display Filter(顯示過濾器), 用于過濾。
2. Packet List Pane(封包列表),顯示捕獲到的封包, 有源地址和目標地址,端口號。顏色不同,代表。
3. Packet Details Pane(封包詳細信息),顯示封包中的字段。
4. Dissector Pane(16進制數(shù)據(jù))。
5. Miscellanous(地址欄,雜項)。
常用操作按鈕
①開始捕獲,②停止捕獲,③重新捕獲
03Wireshark顯示過濾
使用過濾是非常重要的,初學(xué)者使用wireshark時,將會得到大量的冗余信息,在幾千甚至幾萬條記錄中,以至于很難找到自己需要的部分。搞得暈頭轉(zhuǎn)向。
過濾器會幫助我們在大量的數(shù)據(jù)中迅速找到我們需要的信息。
比如上圖的過濾方式,只會顯示TCP端口為5005的通信數(shù)據(jù)包。
注意:這里設(shè)置的是顯示過濾是只顯示,實際上wireshark還是會抓取這個網(wǎng)卡上的所有數(shù)據(jù)包。
過濾器有兩種:
一、顯示過濾器
就是主界面上那個,用來在捕獲的記錄中找到所需要的記錄。
二、捕獲過濾器
用來過濾捕獲的封包,以免捕獲太多的記錄,在捕獲->捕獲過濾器中設(shè)置。這種適用于只抓取某個通道的通信。
保存顯示過濾
通常情況下,我們在工作中每次打開wireshark都是抓取同樣類型的數(shù)據(jù),比如公司產(chǎn)品的默認TCP的端口是5005,也就是上面的tcp.port== 5005。我們不希望每次打開wireshark時都重新輸入一遍過濾表達式,我們可以保存下來。
再輸入表達式后,點擊左側(cè)的書簽按鈕,選擇保存此過濾器。

然后修改名字。
下次點擊左側(cè)書簽,可以直接選擇這個保存顯示過濾條件,不用重復(fù)輸入。
04過濾表達式的規(guī)則
1. 協(xié)議過濾
比如TCP,只顯示TCP協(xié)議。
2. IP 過濾
比如ip.src ==192.168.1.102 顯示源地址為192.168.1.102。
ip.dst==192.168.1.102, 目標地址為192.168.1.102。
3. 端口過濾
tcp.port ==80, 端口為80的。
tcp.srcport == 80, 只顯示TCP協(xié)議的為端口為80的。
4. Http模式過濾
http.request.method==”GET”, 只顯示HTTPGET方法的。
5. 邏輯運算符為AND/ OR
常用的過濾表達式:
05封包詳細信息
封包詳細信息(Packet Details Pane)面板是我們最重要的,用來查看協(xié)議中的每一個字段。
各行信息分別為:
Frame: 物理層的數(shù)據(jù)幀概況。
Ethernet II: 數(shù)據(jù)鏈路層以太網(wǎng)幀頭部信息。
Internet Protocol Version 4: 互聯(lián)網(wǎng)層IP包頭部信息。
Transmission Control Protocol: 傳輸層的數(shù)據(jù)段頭部信息,此處是TCP。
Data:應(yīng)用層的信息。
wireshark與對應(yīng)的TCP/IP四層模型
詳細的使用wireshark抓取數(shù)據(jù)包,分析TCP/IP協(xié)議簇的IP首部字節(jié),TCP首部字節(jié)等等,請看專欄《STM32網(wǎng)絡(luò)開發(fā)》。
06自動保存
開發(fā)中,我們有時候需要抓取某個設(shè)備運行過程中一段時間的數(shù)據(jù),可能是幾天,甚至十幾天。如果我們按照上面的方法,抓取數(shù)據(jù),運行一段時間,wireshark一直在抓取數(shù)據(jù),運行幾個小時后,在內(nèi)存小的PC上就崩潰了。這個時候我們需要wireshark抓取一段時間,自動保存一下。
設(shè)置方法:捕獲->選項->輸出。
在實際項目中,有些嵌入式設(shè)備并不是和PC進行數(shù)據(jù)通信,可能與另一臺嵌入式設(shè)備通信。這時候我們要借助帶有端口鏡像的交換機進行數(shù)據(jù)監(jiān)控。如下圖,將交換機端口配置成3是2的鏡像,配合wireshark的自動保存功能,可以監(jiān)控一個網(wǎng)絡(luò)設(shè)備的全部數(shù)據(jù)包。
07Wireshark的統(tǒng)計功能
Wireshark的一個強大的功能在于他的統(tǒng)計工具,使用Wireshark的時候我們有各種類型的工具可供選擇。
比如協(xié)議分級。協(xié)議分級統(tǒng)計窗口顯示為,捕捉文件包含的所有協(xié)議和樹狀分支;分組百分比永遠按照的是相同協(xié)議層。

再比如可以展示TCP的吞吐量。

這些統(tǒng)計功能是wireshark的重要功能,運維工作人員,網(wǎng)絡(luò)維護人員使用的比較多,嵌入式或單片機網(wǎng)絡(luò)開發(fā),還是以TCP/IP協(xié)議簇抓包分析為主,詳細的統(tǒng)計功能這里不再詳解。
本文轉(zhuǎn)載自微信公眾號「知曉編程」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系知曉編程公眾號。