Wireshark的过滤规则是网络分析的核心功能,它能帮助用户精准定位目标流量。以下是系统化的解析:
一、过滤规则类型
1. 捕获过滤器(BPF语法)
- 位置:Capture → Options → Capture Filter
- 特点:在抓包时生效,减少内存占用
- 示例:host 192.168.1.1 && tcp port 80
- 位置:主窗口过滤器栏
- 特点:对已捕获数据筛选
- 语法:ip.addr == 192.168.1.1 && tcp.port == 80
二、核心过滤语法
1. 协议过滤
- tcp/udp/icmp/http
等协议名直接使用
- 示例:http
或 ssl
- IPv4:ip.addr == 10.0.0.1
- IPv6:ipv6.addr == ::1
- MAC:eth.addr == 00:1a:2b:cc:dd:ee
- tcp.port == 80
- udp.srcport == 53
- 与:&&
或 and
- 或:||
或 or
- 非:!
或 not
三、高级过滤技巧
1. 范围过滤
- 字节偏移:tcp[0:2] == 0x1500
- 端口范围:tcp.port >= 8000 && tcp.port <= 9000
- 十六进制:frame contains 00:ff
- 字符串:http contains "admin"
- 重传包:tcp.analysis.retransmission
- HTTP方法:http.request.method == "GET"
四、实用过滤方案
1. 排错组合
- tcp.analysis.flags && !tcp.analysis.window_update
- icmp.type == 3
(目标不可达)
- tcp.time_delta > 1
(响应延迟>1秒)
- frame.time_delta > 0.5
(帧间隔>500ms)
- tcp.flags.syn == 1 && tcp.flags.ack == 0
(SYN扫描)
- dns.qry.name contains "malware"
五、调试技巧 1. 自动补全:输入时按Ctrl+Space触发字段建议 2. 语法检查:无效规则会显示红色背景 3. 保存过滤器:通过Filter Expression按钮保存常用规则
六、注意事项
1. 捕获过滤器不支持显示过滤器的丰富语法
2. 复杂表达式可能影响性能
3. 协议字段名称区分大小写(如http.host
正确,HTTP.HOST
错误)
建议通过以下方式练习:
1. 右键数据包 → Apply as Filter
2. 使用工具栏的Expression按钮构建过滤器
3. 分析示例:(http || dns) && !(ip.addr == 192.168.1.100)
表示抓取HTTP或DNS流量,但排除特定IP
掌握这些过滤技巧可提升80%以上的分析效率,建议配合Wireshark官方文档(https://www.wireshark.org/docs/)中的Display Filter Reference查阅完整字段列表。