1. 显示过滤器(Display Filters)
显示过滤器用于 在已捕获的数据包中筛选,语法类似于编程语言中的条件表达式。
(1)基本过滤
表达式 | 说明 |
---|---|
ip.addr == 192.168.1.1 |
显示所有涉及 192.168.1.1 的 IP 包 |
ip.src == 192.168.1.1 |
显示源 IP 是 192.168.1.1 的包 |
ip.dst == 192.168.1.1 |
显示目标 IP 是 192.168.1.1 的包 |
eth.addr == 00:11:22:33:44:55 |
按 MAC 地址过滤 |
tcp.port == 80 |
显示 TCP 端口 80(HTTP)的流量 |
udp.port == 53 |
显示 UDP 端口 53(DNS)的流量 |
(2)协议过滤
表达式 | 说明 |
---|---|
http |
显示所有 HTTP 流量 |
dns |
显示所有 DNS 查询 |
tcp |
显示所有 TCP 流量 |
udp |
显示所有 UDP 流量 |
icmp |
显示所有 ICMP(Ping)流量 |
ssl 或 tls |
显示 SSL/TLS 加密流量 |
arp |
显示 ARP 请求/响应 |
bootp 或 dhcp |
显示 DHCP 流量 |
(3)高级过滤(基于内容)
表达式 | 说明 |
---|---|
http.request.method == "GET" |
显示 HTTP GET 请求 |
http.request.method == "POST" |
显示 HTTP POST 请求 |
http contains "login" |
显示 HTTP 请求中包含 "login" 的包 |
tcp.payload contains "password" |
显示 TCP 载荷中包含 "password" 的包 |
dns.qry.name contains "google.com" |
显示查询 google.com 的 DNS 请求 |
smtp.req.command == "MAIL" |
显示 SMTP 邮件发送请求 |
(4)逻辑运算符(AND/OR/NOT)
| 表达式 | 说明 |
|--------------------------------------------|---------------------------------|-------|------------------|
| tcp.port == 80 && ip.src == 192.168.1.1
| 显示源 IP 192.168.1.1
且端口 80 的流量 |
| `http | | dns` | 显示 HTTP 或 DNS 流量 |
| !arp
| 排除所有 ARP 流量 |
| tcp.flags.syn == 1 && tcp.flags.ack == 0
| 显示 TCP SYN 包(用于检测扫描) |
(5)特殊过滤(TCP 状态、错误)
表达式 | 说明 |
---|---|
tcp.analysis.retransmission |
显示 TCP 重传包(网络问题) |
tcp.analysis.duplicate_ack |
显示重复 ACK |
tcp.flags.reset == 1 |
显示 TCP RST(连接重置)包 |
icmp.type == 3 |
显示 ICMP 目标不可达错误 |
2. 捕获过滤器(Capture Filters)
捕获过滤器用于 在抓包时就过滤掉不需要的数据(减少存储量),语法与显示过滤器不同。
(1)基本捕获过滤
表达式 | 说明 |
---|---|
host 192.168.1.1 |
只抓取涉及 192.168.1.1 的流量 |
src host 192.168.1.1 |
只抓取源 IP 是 192.168.1.1 的流量 |
dst host 192.168.1.1 |
只抓取目标 IP 是 192.168.1.1 的流量 |
port 80 |
只抓取 TCP/UDP 端口 80 的流量 |
tcp port 443 |
只抓取 TCP 443(HTTPS)流量 |
udp port 53 |
只抓取 UDP 53(DNS)流量 |
(2)逻辑运算符
表达式 | 说明 |
---|---|
host 192.168.1.1 and port 80 |
抓取 192.168.1.1 的 80 端口流量 |
not arp |
排除 ARP 流量 |
src net 192.168.1.0/24 |
抓取来自 192.168.1.0/24 的流量 |
3. 如何验证过滤语法?
在 Wireshark 的 Filter 输入框:
-
如果 语法正确 ,输入框背景是 绿色 ✅
-
如果 语法错误 ,输入框背景是 红色 ❌
可以点击 Expression...
按钮查看支持的协议和字段。