如果看了這個你還是不會用Wireshark臣樱,那就去殺了她吧,地址EMC中文支持論壇https://community.emc.com/go/chinese
介紹
掌握顯示過濾器對于網絡分析者來說是一項必備的技能。這是一項大海撈針的技巧托修。學會構建,編輯恒界,保存關鍵的顯示過濾器能夠節(jié)省數小時的時間睦刃。
與捕捉過濾器使用的BPF語法不同,顯示過濾器使用的是Wireshark特定的格式十酣。除了某些特例之外涩拙,Wireshark顯示過濾器和捕捉過濾器有很大的區(qū)別。
更多信息
最簡單的過濾器語法****:
最簡單的顯示過濾器可基于協(xié)議耸采,應用兴泥,域名,或字符虾宇,對大小寫敏感搓彻。絕大多數簡單的顯示過濾器由小寫字母組成。
協(xié)議過濾器:
- arp:顯示所有包括ARP請求和回復在內的所有ARP數據流。
- ip:顯示內含IPv4頭在內的(如ICMP目的地址不可達報文好唯,在ICMP報文頭之后返回到來方向的IPv4頭)IP數據流竭沫。
- ipv6:顯示所有IPv6數據流,包括內含IPv6報文頭的IPv4報文骑篙,如6to4,Teredo森书,以及ISATAP數據流靶端。
- tcp:顯示所有基于TCP的數據流。
應用過濾器:
- bootp:顯示所有DHCP數據流(基于BOOTP)凛膏。
- dns:顯示包括TCP區(qū)域傳輸以及基于標準UDP的DNS請求和回復在內的所有DNS數據流杨名。
- tftp:顯示所有TFTP(Trivial File Transfer Protocol)數據流。
- http:顯示所有HTTP命令猖毫,回復以及數據傳輸報文台谍,但不顯示TCP握手報文,TCP ACK報文以及TCP結束報文吁断。
- icmp:顯示所有ICMP報文趁蕊。
域過濾器:
- boot.option.hostname:顯示所有包含主機名的DHCP數據流(DHCP基于BOOTP)。
- http:host:顯示所有包含HTTP主機名字段的所有HTTP報文仔役。此報文是客戶端向網絡服務器發(fā)送請求時發(fā)出的掷伙。
- ftp.request.command:顯示所有包含命令的FTP數據流,比如USER又兵,PASS任柜,或RETR命令。
字符過濾器:
- tcp.analysis.flags:顯示所有包含TCP分析標識的所有報文沛厨,包括報文丟失宙地,重傳,或零窗口標識逆皮。
- tcp.analysis,zero_window:顯示含有表明發(fā)送方的接收緩存用完標識的報文宅粥。
了解字段名****:
很多顯示過濾器都是基于字段名(例如http.host)。要了解字段名页屠,在Packet list面板選中字段查看Status條粹胯,如下圖所示。
本例中辰企,我們在Packet Display面板中選中第10幀风纠,然后在Packet Details面板中展開HTTP報文頭。之后在報文的HTTP段點擊Request Method行牢贸,狀態(tài)條表明這一字段稱為http.request.method竹观。
我們在顯示過濾器區(qū)域輸入http.request.method以顯示所有包含這一字段的報文。如下圖所示,注意到Status條表明此抓包文件包含2011個報文只有101個報文符合過濾條件臭增。
這是一個很好用的過濾器懂酱,以確定HTTP客戶端請求了哪些內容。網絡服務器不發(fā)送HTTP request method誊抛,它們發(fā)送HTTP響應代碼列牺。
使用自動完成功能****:
當你在過濾器區(qū)域輸入http.request.method的時候,Wireshark打開一個窗口讓你遍歷過濾器選項拗窃。當你輸入http.(包括點號)瞎领,你會看到所有可能的以此為開頭的顯示過濾條件列表。繼續(xù)輸入http.request. 随夸,會看到以這一短語為開頭的過濾條件九默,如下圖所示:
可以使用這一自動完成功能查看所有可用的過濾條件。例如,輸入tcp. ,Wireshark會列出所有可用的TCP過濾條件渐裸。如果輸入tcp.analysis. 沸毁,Wireshark會列出所有處理TCP問題與性能的TCP analysis過濾條件,如下圖:
顯示過濾器比較運算符****:
通過擴展過濾條件可查找某一域值,Wireshark針對此功能支持數字比較運算符。
- ==或eq
例如:ip.src == 10.2.2.2
顯示所有源地址為10.2.2.2的IPv4數據流
- !=或ne
例如:tcp.srcport != 80
顯示源端口除了80以外的所有TCP數據流
或gt
例如:frame.time_relative > 1
顯示距前一個報文到達時間相差1秒的報文
- <或lt
例如:tcp.window_size < 1460
顯示當TCP接收窗口小于1460字節(jié)時的報文
=或ge
例如:dns.count.answers >= 10
顯示包含10個以上answer的DNS響應報文
- <=或le
例如:ip.ttl <= 10
顯示IP報文中Time to Live字段小于等于10的報文
- contains
例如:http contains “GET”
顯示所有HTTP客戶端發(fā)送給HTTP服務器的GET請求
對于基于TCP應用的過濾條件采用比較運算符觅丰。例如,如果想看端口80上面的HTTP數據流妨退,使用HTTP.port==80妇萄。
小貼士:
運算符兩邊不用留空格。ip.src == 10.2.2.2與ip.src==10.2.2.2的效果是相同的咬荷。
使用****Expressions:
當你實在不知道該過濾些什么的時候冠句,使用顯示過濾器工具欄的Expression按鈕。在Filter Expression窗口幸乒,輸入感興趣的應用或協(xié)議名懦底,跳轉到Field Name列表中相應條目。Relation選項用來添加一個比較運算符罕扎,窗口右端是預先定義的值聚唐。點擊Apply按鈕完成。
編輯和使用默認過濾器****:
Wireshark提供15個缺省顯示過濾器供創(chuàng)建新的顯示過濾器時參考腔召。點擊Filter按鈕或點擊Display Filter按鈕打開顯示過濾器窗口杆查,如下圖所示:
下圖顯示了缺省過濾器列表,選中之后點擊OK臀蛛。
小心使用缺省過濾器亲桦。以太網和IP主機過濾器可能與實際網絡不符崖蜜。使用之前必須編輯或作為創(chuàng)建參考。
小貼士:
顯示過濾器保存在一個名為dfilters的文件中客峭,可以使用任何文本編輯器來進行編輯豫领。要找到你的dfilters文件,首先在Status條的右端查找當前profile名舔琅。如果這一區(qū)域表明你在默認profile等恐,選擇Help\About Wireshark\Folders并雙擊Personal Configuration文件夾鏈接,dfilters文件就在這個目錄里搏明。