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

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

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

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