在以前文章《我是如何使用wireshark軟件的》中介紹了wireshark的使用,提到了顯示過濾器和捕獲過濾器,重點介紹了顯示過濾器,本文將主要介紹一下捕獲過濾器。服務器
這裏再次說明一下二者區別,須要看顯示過濾器的同窗,請看文章《我是如何使用wireshark軟件的》。網絡
捕獲過濾器:當進行數據包捕獲時,只有那些知足給定的包含/排除表達式的數據包會被捕獲。app
顯示過濾器:該過濾器根據指定的表達式用於在一個已捕獲的數據包集合中,隱藏不想顯示的數據包,或者只顯示那些須要的數據包。spa
首先了解下,爲何須要捕獲過濾器。舉個例子,在一臺服務器(TCPsever,端口5005)上,一個客戶端(其餘家公司設備)運行幾天,就會忽然掉線。這時候,說不清是服務器把客戶端踢下線,仍是客戶端主動離線。3d
固然,這個時候在服務器添加日誌記錄便可,就能夠找「真兇」。若是是對方設備主動離線,對方又不配合時,對方「不相信你的日誌」。這個時候,使用wireshark抓包,找出對方設備(TCPClient)先發出的FIN斷開鏈接的證據,而後「甩」他臉上便可。日誌
其實上述場景,我在《我是如何使用wireshark軟件的》文中也提到過解決方案,使用顯示過濾加定時保存的策略,不過這樣在幾天的抓包中,會致使抓包文件很大。而捕獲過濾則能夠解決這個問題。code
捕獲過濾使用方法blog
1.選擇捕獲->捕獲過濾器,而後編輯一個新的捕獲過濾器選項:名稱爲「port5005」(名字根據本身的需求便可),過濾器爲「port5005」。圖片
2.在開始界面選擇網卡,而後點擊②處,選擇上一步新建的輸入捕獲條件便可。ip
3.開始捕獲
選擇完輸入捕獲條件,以下圖,直接雙擊網卡,就開始捕獲了。
捕獲過濾器應用於WinPcap,並使用BerkeleyPacketFilter(BPF)語法。這個語法被普遍用於多種數據包嗅探軟件,主要由於大部分數據包嗅探軟件都依賴於使用BPF的libpcap/WinPcap庫。掌握BPF語法對你在數據包層級更深刻地探索網絡來講,很是關鍵。
使用BPF語法建立的過濾器被稱爲表達式,而且表達式包含一個或多個原語。每一個原語包含一個或多個限定詞,而後跟着一個ID名字或者數字,如:
BPF語法也是支持下列邏輯運算符的,從而創造更高級的表達式。
鏈接運算符 與 (&&)
選擇運算符 或 (||)
否認運算符 非 (!)
舉例說明:
上述表達式只對源地址是192.168.0.10和源端口或目標端口是5005的流量進行捕獲。
經常使用的過濾示例
注意靈活使用上文提到的邏輯運算符。