如何使用Wireshark過濾並錄封包

Wireshark是個實用的網路工具,通常沒事不出動,出現就是有事的時候,有事的時候通常比較緊急,因此,平常練習Wireshark,在網路除錯上可以得到很大的幫助。

在路由層面的除錯通常不用讓Wireshark出動,而路由層面之上就會用Wireshark去收集Packets,通常以Session爲分組。

瞭解「正常的Session互動過程」,是解讀Packets前必需知道的知識。像是DHCP過程、TCP過程等。

如果使用過Wireshark,錄下的封包琳琅滿目,不只偏失重點,也造成難以入門。

首先學會如何只錄特定封包,這對於已經有方向的除錯會很有幫助。

ChatGPT的回答

https://chatgpt.com/share/6769d02b-bb80-8003-93c0-6fbd358c7407

如果只要錄ARP封包

ARP封包很重要,可以用於判讀該區域網路有什麼設備,也可以搜尋接錯VLAN的設備。

先在Capture Filters加入一個項目並且設定所要過濾的條件。

打開Wireshark
Capture > Capture Filters
新增項目ARP,並且設定條件
點選「…using this filter」,並且選擇ARP
這樣就只會抓取ARP封包

保存封包檔後,重新開啓,也能確認只有符合過濾條件的封包被記錄。

如何快速上手過濾條件?

一般人在一開始不太清楚filter的規則,我們可以先錄封包,然後對想要應用在filter的值,點擊右鍵 > Apply as Filter,查看若要以此值過濾要如何輸入。

對於Protocol點擊右鍵 > Apply as Filter
在下方細項中,對於來源MAC點擊右鍵 > Apply as Filter
常用顯示過濾器範例:

過濾特定 IP 位址的封包:ip.addr == 192.168.1.1
過濾特定來源 IP 的封包:ip.src == 192.168.1.1
過濾特定目的地 IP 的封包:ip.dst == 192.168.1.1
過濾特定協定的封包(例如 HTTP):http
過濾特定連接埠的封包:tcp.port == 80
過濾封包大小小於 400 位元組的封包:frame.len < 400



組合過濾條件:

AND 運算子(且):
語法:&& 或 and
範例:過濾來源 IP 為 192.168.1.1 且使用 HTTP 協定的封包:ip.src == 192.168.1.1 && http
OR 運算子(或):

語法:|| 或 or
範例:過濾來源或目的地 IP 為 192.168.1.1 的封包:ip.src == 192.168.1.1 || ip.dst == 192.168.1.1
NOT 運算子(非):

語法:! 或 not
範例:過濾非 HTTP 協定的封包:!http