
常用過濾語句
前面加!號代表去除該包。
例如:!http表示不選取http的包
src代表源端口,dst代表目的端口
ip.addr == 192.168.1.1 過濾ip地址為192.168.1.1的包
ip.dst == 192.168.1.1 過濾ip目的地址為192.168.1.1的包
ip.src == 192.168.1.1 過濾ip源ip地址為192.168.1.1的包
tcp 過濾tcp的包
tcp.port == 80 過濾端口為80的包
udp 過濾udp的包
arp 過濾arp的包
http http2 過濾http、http2的包

在wireshark主頁中有捕獲菜單欄,里面有選項,下面的過濾規則大部分是針對它的
ether host <Ethernet host>讓wireshark只抓取源於或發往由標識符Ethernet host所指定的以太網主機的以太網幀
ether dst <Ethernet host> 目的mac地址
ether src <Ethernet host> 源MAC地址
ether broadcast 讓wireshark只抓取所有以太網廣播流量
ether multicast 讓wireshark只抓取所有以太網多播流量
ether proto <protocol> 所抓以太網流量的以太網協議類型編號,與標識符<protocol>所定義的以太網協議類型編號相匹配
vlan <vlan_id> 讓wireshark只抓取有標識符<vlan_id>所指定的vlan的流量
ip 只抓取ipv4地址的包
ip6 只抓取ipv6地址的包
host <host> 讓wireshark只抓取源於或發往由標識符host所指定的主機名或IP地址的流量
dst host <host> 讓wireshark只抓取發往由標識符host所指定的主機名或IP地址的流量
src host <host> 讓wireshark只抓取源於由標識符host所指定的主機名或IP地址的流量
gateway <host> 讓wireshark只抓取穿host而過的流量
net <net> 讓wireshark只抓取源於或發往由標識符net所標識的IPv4/IPv6網絡號的流量
dst net <net> 發往的
src net <net> 源於的
net <net> mask <netmask> 讓wireshark只抓取源於或發往由標識符net和mask共同指明的IPv4網絡號的流量(對ipv6流量無效)
dst <net> mask <netmask> 發往的
src <net> mask <netmask> 源於的
net <net>/<len> 讓wireshark只抓取源於或發往由標識符
dst net <net>/<len> 發往的
src net <net>/<len> 源於的
broadcast 讓wireshark只抓取IP廣播包
multicast 讓wireshark只抓取IP多播包
ip proto <protocol code> 讓wireshark只抓取IP包頭的協議類型字段值等於特定值(等於由標識符proto所指明的protocol code[協議代碼]值)的數據包。
IP數據包種類繁多,隨IP包頭的協議類型字段值而異,比如,TCP數據包(協議類型字段值為6)、UDP數據包(協議類型字段值為17)和ICMP數據包(協議類型字段值等於1)等。
ip6 proto <protocol> 讓Wireshark只抓取IPv6(主)包頭中下一個包頭字段值等於特定值(等於由標識符proto所指明的protocol值)的IPv6數據包。請注意,無法使用該原詞根據IPv6擴展包頭鏈中的相關字段值來執行過濾
icmp[icmptype]==<identifier> 讓wireshark只抓取特定類型[icmptype]的ICMP數據包,<identifier>表示的是ICMP頭部中的類型字段值,比如,0(ICMP echo reply數據包) 或8(ICMP echo request數據包)等
ip multicast 用來抓取IP多播數據包
ip broadcast 用來抓取IP廣播數據包
ip[2:2] == <number> 用來抓取特定長度的IP數據包(number表示IP包頭中的IP包總長度字段值)
ip[8] == <number> 用來住區具有特定TTl(生存時間)的IP數據包(number表示IP包頭中的TTL字段值)
(ip[12:4] == 1 ip[16:4]) 表示數據包的源和目的IP地址相同
tcp [tcpflags] & (tcp-syn | tcp-fin) != 0 讓wireshark只抓所有TCP連接中用來發起(SYN標記位置1)連接或終止連接(FIN標記位置1)的數據包(TCP連接屬於全雙工連接,客戶端與服務器之間會建立雙向連接。也就是說,建立TCP連接時,客戶端想服務器發起連接之后,服務器也會想客戶端發起連接,終止連接亦然),抓包過濾器應如此設置。
tcp [tcpflags] & (tcp-rst) != 0 讓wireshark只抓所有RST標記位置1的TCP數據包。
tcp portrange 2000-5000 只抓源或目的端口范圍在2000到5000之間的TCP數據包
Wireshark過濾器
過濾器會可以幫助我們只抓捕關注的信息或在在龐雜的抓捕結果中過濾出目標信息。
捕捉過濾器(CaptureFilters):捕捉過濾器在抓抱前進行設置,決定抓取怎樣的數據;
顯示過濾器(DisplayFilters):用於在捕捉結果中進行過濾,方便stream的追蹤和排查。
按照過濾的語法可分為協議過濾和內容過濾。捕捉過濾器僅支持協議過濾,顯示過濾器既支持協議過濾也支持內容過濾。兩種過濾器支持的過濾語法並不一樣。
如果過濾器的語法是正確的,表達式的背景呈綠色。如果呈紅色,說明表達式有誤。
過濾器支持比較運算符、邏輯運算符,內容過濾時還能使用位運算。
對標准協議,既支持粗粒度的過濾如HTTP,也支持細粒度的、依據協議屬性值進行的過濾如tcp.port==53、http.request.method=="GET"。
對內容的過濾,既支持深度的字符串匹配過濾如http contains "Server",也支持特定偏移處值的匹配過濾如tcp[20:3] == 47:45:54。
轉載自:https://blog.csdn.net/bt517840374/article/details/80030297
