這篇文章介紹一個好用的抓包工具Wireshark, 用來獲取網絡數據封包,包括HTTP、TCP、UDP等網絡協議包。網絡
開始界面app
wireshark是捕獲機器上的某一塊網卡的網絡包,當你的機器上有多塊網卡的時候,你須要選擇一個網卡。直接雙擊上面的某個網卡便可。運維
Wireshark 窗口介紹:tcp
WireShark 主要分爲這幾個界面:工具
1. Display Filter(顯示過濾器), 用於過濾。spa
2. Packet List Pane(封包列表),顯示捕獲到的封包, 有源地址和目標地址,端口號。顏色不一樣,表明。3d
3. Packet Details Pane(封包詳細信息),顯示封包中的字段。blog
4. Dissector Pane(16進制數據)。圖片
5. Miscellanous(地址欄,雜項)。ip
經常使用操做按鈕
①開始捕獲,②中止捕獲,③從新捕獲
使用過濾是很是重要的,初學者使用wireshark時,將會獲得大量的冗餘信息,在幾千甚至幾萬條記錄中,以致於很難找到本身須要的部分。搞得暈頭轉向。
過濾器會幫助咱們在大量的數據中迅速找到咱們須要的信息。
好比上圖的過濾方式,只會顯示TCP端口爲5005的通訊數據包。
注意:這裏設置的是顯示過濾是隻顯示,實際上wireshark仍是會抓取這個網卡上的全部數據包。
過濾器有兩種:
1、顯示過濾器
就是主界面上那個,用來在捕獲的記錄中找到所須要的記錄。
2、捕獲過濾器
用來過濾捕獲的封包,以避免捕獲太多的記錄,在捕獲->捕獲過濾器中設置。這種適用於只抓取某個通道的通訊。
保存顯示過濾
一般狀況下,咱們在工做中每次打開wireshark都是抓取一樣類型的數據,好比公司產品的默認TCP的端口是5005,也就是上面的tcp.port== 5005。咱們不但願每次打開wireshark時都從新輸入一遍過濾表達式,咱們能夠保存下來。
再輸入表達式後,點擊左側的書籤按鈕,選擇保存此過濾器。
而後修更名字。
下次點擊左側書籤,能夠直接選擇這個保存顯示過濾條件,不用重複輸入。
1. 協議過濾
好比TCP,只顯示TCP協議。
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協議的爲端口爲80的。
4. Http模式過濾
http.request.method==」GET」, 只顯示HTTPGET方法的。
5. 邏輯運算符爲AND/ OR
經常使用的過濾表達式:
封包詳細信息(Packet Details Pane)面板是咱們最重要的,用來查看協議中的每個字段。
各行信息分別爲:
Frame: 物理層的數據幀概況。
Ethernet II: 數據鏈路層以太網幀頭部信息。
Internet Protocol Version 4: 互聯網層IP包頭部信息。
Transmission Control Protocol: 傳輸層的數據段頭部信息,此處是TCP。
Data:應用層的信息。
wireshark與對應的TCP/IP四層模型
詳細的使用wireshark抓取數據包,分析TCP/IP協議簇的IP首部字節,TCP首部字節等等,請看專欄《STM32網絡開發》。
開發中,咱們有時候須要抓取某個設備運行過程當中一段時間的數據,多是幾天,甚至十幾天。若是咱們按照上面的方法,抓取數據,運行一段時間,wireshark一直在抓取數據,運行幾個小時後,在內存小的PC上就崩潰了。這個時候咱們須要wireshark抓取一段時間,自動保存一下。
設置方法:捕獲->選項->輸出。
在實際項目中,有些嵌入式設備並非和PC進行數據通訊,可能與另外一臺嵌入式設備通訊。這時候咱們要藉助帶有端口鏡像的交換機進行數據監控。以下圖,將交換機端口配置成3是2的鏡像,配合wireshark的自動保存功能,能夠監控一個網絡設備的所有數據包。
Wireshark的一個強大的功能在於他的統計工具,使用Wireshark的時候咱們有各類類型的工具可供選擇。
好比協議分級。協議分級統計窗口顯示爲,捕捉文件包含的全部協議和樹狀分支;分組百分比永遠按照的是相同協議層。
再好比能夠展現TCP的吞吐量。
這些統計功能是wireshark的重要功能,運維工做人員,網絡維護人員使用的比較多,嵌入式或單片機網絡開發,仍是以TCP/IP協議簇抓包分析爲主,詳細的統計功能這裏再也不詳解。
點擊查看本文所在的專輯,STM32F207網絡開發