文章目录
- 一、WireShark过滤器概念
- 1. 捕获过滤器(Capture Filters)
- 2. 显示过滤器(Display Filters)
- 3. 捕获过滤器与显示过滤器的区别
- 4. 过滤器语法结构
- 实际应用场景
- 二、WireShark捕获数据包列表
- 1. **No.(序号)**
- 2. **Time(时间)**
- 3. **Source(源地址)**
- 4. **Destination(目的地址)**
- 5. **Protocol(协议)**
- 6. **Length(长度)**
- 7. **Info(信息)**
- 总结:
一、WireShark过滤器概念
Wireshark过滤器是用于在网络数据包捕获过程中提取、显示和分析特定数据包的工具。过滤器分为两种类型:捕获过滤器和显示过滤器,它们分别在不同的阶段使用。
1. 捕获过滤器(Capture Filters)
捕获过滤器用于在捕获网络流量时只记录特定的数据包。这种过滤器直接作用于数据流,可以减少捕获文件的大小,提升分析效率。它使用的是 Berkeley Packet Filter (BPF) 语法,语法较为简洁。
常用捕获过滤器示例:
- 捕获特定IP地址的流量:
host 192.168.1.1
- 捕获特定端口的TCP流量:
tcp port 80
- 捕获所有HTTP流量:
tcp port 80 or port 443
- 捕获ARP请求:
arp
2. 显示过滤器(Display Filters)
显示过滤器用于对已经捕获的数据进行筛选和分析,帮助用户聚焦特定数据包。它们只影响Wireshark的显示界面,不改变已捕获的文件内容。显示过滤器使用的是Wireshark的专用语法,允许更复杂的条件组合。
常用显示过滤器示例:
- 过滤某个IP地址的数据包:
ip.addr == 192.168.1.1
- 过滤TCP协议的数据包:
tcp
- 过滤特定端口的数据包:
tcp.port == 80
- 过滤某个子网的流量:
ip.addr == 192.168.1.0/24
- 过滤包含HTTP协议的流量:
http
3. 捕获过滤器与显示过滤器的区别
- 捕获过滤器:在数据包进入Wireshark之前生效,决定了哪些数据包会被捕获并记录下来。它的功能更高效,适合在数据量非常大的场景下过滤不需要的流量。
- 显示过滤器:作用于已捕获的数据包,对显示的内容进行精细筛选。它适合分析和调试过程中使用,可以在大量数据包中快速找到特定信息。
4. 过滤器语法结构
- 比较运算符:
==
(等于),!=
(不等于),>
,<
等。 - 逻辑运算符:
and
(与),or
(或),not
(非)。
实际应用场景
- 诊断网络问题:通过过滤器查看特定协议、IP地址或端口的流量,识别延迟或丢包原因。
- 安全分析:使用过滤器跟踪可疑活动,识别潜在的攻击行为,如扫描端口、未授权访问等。
- 流量分析:过滤器帮助用户对特定应用或设备进行网络性能分析,优化数据传输路径。
过滤器的使用大大提高了Wireshark的可用性和效率,帮助网络工程师和安全分析人员聚焦到最重要的数据包。
直接在WireShark中输入就可以捕获到对应的数据:
二、WireShark捕获数据包列表
在Wireshark捕获的数据包列表中,默认显示的列信息包括:No.、Time、Source、Destination、Protocol、Length 和 Info,这些列共同提供了关于每个数据包的详细信息。以下是这些字段的具体解释:
1. No.(序号)
这是数据包的序号,表示数据包在捕获过程中按顺序的编号。Wireshark捕获数据时,会根据数据包到达的时间顺序为其分配一个唯一编号。这个编号主要用于定位和跟踪具体的数据包。
2. Time(时间)
Time
列显示了每个数据包到达时的时间戳。默认情况下,时间是相对于捕获开始时的秒数,但用户可以更改时间显示格式,比如显示绝对时间或相对于上一个数据包的时间。这个时间信息对于分析数据包的延迟、网络性能和问题定位非常重要。
- 相对时间:时间值是相对于第一个数据包的到达时间。
- 绝对时间:显示数据包到达的真实时间(可以是系统时间)。
3. Source(源地址)
Source
表示发送数据包的设备的地址。通常是IP地址(如 192.168.1.1
)或MAC地址(如 00:11:22:33:44:55
),具体显示取决于数据包的类型和协议。在协议分析时,它用于标识数据包的发送方。
4. Destination(目的地址)
Destination
表示数据包的接收端地址。它也是一个IP地址或MAC地址,表示目标设备或网络节点。在通信分析中,它用于标识数据包的接收方。
5. Protocol(协议)
Protocol
列显示了数据包所使用的协议类型。Wireshark会自动识别和解析网络协议,常见的协议包括:
- TCP(传输控制协议)
- UDP(用户数据报协议)
- ICMP(互联网控制消息协议)
- HTTP(超文本传输协议)
- DNS(域名系统)
- ARP(地址解析协议)
通过查看协议,可以快速识别网络流量的类型和数据包所涉及的通信协议。
6. Length(长度)
Length
表示数据包的长度(以字节为单位)。它指示了数据包的整体大小,包括报头和有效负载(payload)。该信息对于分析带宽、流量或查找异常大小的数据包非常有用。
7. Info(信息)
Info
列显示了数据包的简要信息或描述,通常与协议相关。它提供了对数据包更详细的解释,如源端口和目标端口、请求或响应的状态、错误消息等。不同协议的 Info
信息可能有不同的内容。例如:
- 对于TCP数据包,它可能显示源端口和目标端口,如
443 > 51234 [ACK]
。 - 对于HTTP数据包,它可能显示具体的请求类型,如
GET /index.html HTTP/1.1
。
这个字段非常有助于快速浏览和理解数据包的内容,尤其是在寻找特定类型的请求或响应时。
总结:
Wireshark中这些列的信息结构化地提供了每个数据包的关键信息,帮助用户分析网络通信的行为和状态:
- No.:数据包顺序
- Time:数据包到达时间
- Source:数据包发送方地址
- Destination:数据包接收方地址
- Protocol:通信协议
- Length:数据包大小
- Info:简要说明