Wireshark是网络分析工具中最强大的一个。 其中之一的优势是,可以为特定协议、源或目标、甚至在包中使用的某个值过滤数据包。在本文中,我们将深入介绍Wireshark常用的过滤条件、使用方法以及案例说明,以帮助初学者更好地理解网络分析过程中的数据包过滤技巧。
一、Wireshark高级过滤条件的基础
在Wireshark抓包界面中,可以单击”过滤器“菜单向导或Ctrl+T快捷键来打开过滤器窗口。对于初学者来说,Wireshark窗口的界面可能比较复杂,下面我就介绍wireshark窗口界面中比较重要的几个部分。
1、主窗口区域:Wireshark的主窗口通常显示捕获文件中的数据包。应该注意的是,每包的详细信息将出现在主窗口的下半部分,所以Wireshark的主窗口被分为了两个区域
2、包数据包窗口区域:这个区域显示了捕获到的每个数据包或筛选出的数据包的详细信息。它的格式是,它首先显示的是数据帧的标头,其次显示的是数据包的四层协议细节。Wireshark并不仅仅是提供了数据层、网络层、传输层的信息,它还能深入到特定应用程序层次的协议细节。
3、过滤器窗口区域:这是Wireshark的过滤器界面。打开”过滤器“菜单项或按Ctrl+T键,可以展开它。
二、Wireshark的基本过滤器
Wireshark上常用的过滤器数量非常之大,这里我们仅介绍了一些较为基本的过滤器条件。对于其他过滤器类型,您可以参考Wireshark官网的完整指南。
1、协议类型过滤器
协议类型过滤器是Wireshark中最常用的过滤器类型,可以有助于用户根据IPv4、IPv6或TCP和UDP等协议类型进行过滤。
对于协议类型过滤器,可以使用过滤器参数”ip“、”tcp“或”udp“来指定,例如”ip.addr == 192.0.2.1“或”tcp.port == 80“。这些过滤器将仅显示使用特定协议的数据包。
2、IP地址过滤
IP地址过滤器可以帮助用户仅显示存储特定IP地址的数据包。您可以过滤源、目标或两者均为特定IP地址的数据包。例如,过滤IP地址为192.0.2.1的数据包,您可以使用以下过滤器字符串:
- ip.addr == 192.0.2.1
- ip.src == 192.0.2.1 or ip.dst == 192.0.2.1
3、端口过滤
可以根据特定端口筛选数据包,这可以使您更容易地筛选和分析来自特定应用程序的通信。例如,过滤端口为80的数据包,您可以使用以下过滤器字符串:
- tcp.port == 80
- udp.port == 80
4、数据包长度过滤
可以对发送和接收的数据包进行过滤以限制Wireshark的结果的数量,包长度过滤器是控制捕捉的数据包大小的有用工具。以下过滤器字符串可以限制大小:
- frame.len > 500
- frame.len < 500
其中,frame.len代表帧大小
5、http过滤
HTTP过滤器可以专门检查HTTP数据包。这可以说明以可读方式查看HTTP会话,更容易地确定用户访问的网页,以及每个对象的结构和大小。以下过滤器字符串可以查看HTTP:
- http.request.method == “GET”
- http.request.uri contains “login”
三、Wireshark高级过滤器
下面列出了Wireshark中最有用的高级过滤器方法。这些过滤器将帮助您以更高的效率和更精确地查看网络通信。
1、过滤IP加端口的数据包
在Wireshark中,可以使用以下过滤器字符串来过滤特定IP地址和端口的数据包:
- (ip.addr==192.0.2.1 && tcp.port==80)
上述过滤器字符串将仅显示特定IP地址的所有通信,其中的目标端口为TCP port 80,即HTTP请求。
2、过滤在一定时间段内的通信
Wireshark可以通过所述time,frame.time_display,或frame.time_relative-time.time_relative过滤器来检索发生在特定时间范围内的通信。例如,只显示收到和发送的数据包的前60秒,您可以使用以下过滤器字符串:
- (frame.time_relative<=60.0)
3、按协议过滤
wireshark支持按协议的过滤筛选,可以根据协议类型进行“更厉害”的过滤操作,例如,过滤仅显示TCP数据包,您可以使用以下过滤器字符串:
- tcp
- not tcp
当使用“not”关键字时,Wireshark将仅显示不是TCP的任何通信。
4、过滤以及条件
如果您需要同时筛选两个或更多不同的条件,Wireshark支持将过滤条件链接在一起来个性化筛选数据包。例如,查找来自192.0.2.1并使用端口80的数据包,可以使用以下过滤器字符串:
- (ip.addr==192.0.2.1) && (tcp.port==80)
5、比较运算符的使用
比较运算符可以与许多过滤器类型结合使用,包括IP地址、数据包长度、时间和端口过滤器。例如,可以仅显示比特数>500的数据包,可以使用以下过滤器字符串:
- frame.len > 500
四、使用Wireshark的过滤器的实例
下面看几个简单的实例,说明Wireshark中的过滤器如何实现。
1、查找192.168.1.1(source或destination)地址的数据包
如上所述,可以使用ip.addr过滤器过滤在TCP / IP协议中指定的IP地址。因此,使用以下过滤器字符串搜索源或目标为IP地址192.168.1.1的数据包。
- ip.addr == 192.168.1.1
2、查找特定端口(80)的数据包
使用tcp.port过滤器可以筛选特定端口的数据包。以下是一个基本范例。
- tcp.port == 80
3、查找长度大于100的数据包
frame.len是表示数据包大小(以字节为单位)的过滤器参数,并且可用于筛选特定数据包大小的过滤器。例如,使用以下过滤器字符串只会显示所有数据包长度大于100字节的数据包。
- frame.len > 100
4、查找HTTP数据包
使用http.request.method和http.request.uri包装特定HTTP请求。例如,通过以下过滤器字符串可以显示所有GET请求:
- http.request.method == “GET”
下面来一例加深理解:
- 使用Wireshark手动抓包应该如何筛选IGMPv2数据包
解答:IGMPv2协议的值是0x16,所以过滤条件如下:
- eth.type == 0x0800 && ip.proto == 2
在过滤器中比较一些十六进制时,注意每个数值都必须以0x作为前缀。
本文介绍了Wireshark常用的过滤条件及其使用方法,并通过实际案例为大家的理解和掌握提供了更多的帮助。对于新手来说,运用Wireshark分析数据包时,掌握好过滤条件是必须要做的事情。
壹涵网络我们是一家专注于网站建设、企业营销、网站关键词排名、AI内容生成、新媒体营销和短视频营销等业务的公司。我们拥有一支优秀的团队,专门致力于为客户提供优质的服务。
我们致力于为客户提供一站式的互联网营销服务,帮助客户在激烈的市场竞争中获得更大的优势和发展机会!
发表评论 取消回复