Wireshark 过滤器的使用与优化
学习笔记作者:admin日期:2025-06-01点击:19
摘要:介绍 Wireshark 捕获过滤器和显示过滤器的使用方法,通过设置过滤器精准抓取特定程序的网络数据包。
Wireshark 过滤器的使用与优化
Wireshark 是一款强大的网络协议分析工具,过滤器功能是其核心。本文详细介绍了两种过滤器——捕获过滤器和显示过滤器的使用方法,帮助用户通过精准设置过滤器来抓取特定程序的网络数据包。
一、Wireshark 过滤器类型
Wireshark 提供了两种主要过滤器:
类型 | 名称 | 作用 | 示例 |
---|---|---|---|
捕获过滤器 | BPF 语法 | 在抓包前过滤数据包 | host 192.168.1.1 and port 80 |
显示过滤器 | Wireshark 自定义语法 | 抓包后在界面上过滤显示 | ip.addr == 192.168.1.1 && tcp.port == 80 |
二、捕获过滤器(Capture Filter)
捕获过滤器用于在抓包前设置过滤条件,减少内存和磁盘开销。以下是常用语法(BPF 语法):
host <IP地址>
:匹配源或目的 IP 地址net <网段>
:匹配某个子网port <端口号>
:匹配端口- 协议过滤:如
tcp
、udp
、icmp
- 组合逻辑:如
and
、or
、not
例如:host 192.168.1.1 and port 80 and tcp
表示只捕获与 IP 为 192.168.1.1 的主机通信,并且端口为 80 的 TCP 数据包。
三、显示过滤器(Display Filter)
显示过滤器用于在抓包后筛选出符合条件的数据包,更灵活、强大。以下是常用语法:
1. 基本字段匹配
ip.addr == 192.168.1.1
:匹配源或目的 IP 地址tcp.port == 80
:匹配 TCP 端口http
:显示所有 HTTP 流量
2. 逻辑组合
&&
(AND)||
(OR)!
(NOT)
例如:(tcp.port == 80 || tcp.port == 443) && ip.addr == 192.168.1.1
表示显示目标或源 IP 为 192.168.1.1 并且端口是 80 或 443 的 TCP 包。
四、小技巧
- 输入过程中按
Ctrl + Space
可自动补全字段名。 - 鼠标右键点击某个字段 → “Apply as Filter” → 快速生成过滤器。
- 使用
!(filter)
来排除某些包。 - 使用
frame.number > 100 && frame.number < 200
查看特定编号范围的数据包。
五、推荐流程
步骤 | 操作 |
---|---|
1 | 使用 netstat 或 TCPView 获取程序访问的 IP 或端口 |
2 | 设置捕获过滤器(如 host xxx.xxx.xxx.xxx and port yyyy ) |
3 | 开始抓包 → 打开程序 → 停止抓包 |
4 | 使用显示过滤器进一步精简结果(如 tcp.port == yyyy ) |
六、关键词
Wireshark, 捕获过滤器, 显示过滤器, BPF 语法, 网络数据分析