
Wirshark 语法
🔍 Wireshark 过滤器类型
特性 | 捕获过滤器 (Capture Filter) | 显示过滤器 (Display Filter) |
---|---|---|
作用阶段 | 数据包捕获前过滤 | 数据包捕获后显示过滤 |
语法基础 | BPF (Berkeley Packet Filter) | Wireshark 专用表达式语言 |
性能影响 | ✅ 降低内存 /CPU 占用 | ❌ 仅影响显示,不减少内存占用 |
灵活性 | 基础协议 / 地址过滤 | 支持深度包解析和复杂逻辑 |
📥 捕获过滤器语法
捕获过滤器的语法基于 BPF 语法,以下是一些常用的操作符和示例:
核心操作符
host 192.168.1.1 # 主机IP(源或目标)
net 192.168.1.0/24 # 网段过滤
port 80 # 端口过滤
tcp, udp, icmp # 协议类型
方向控制
src host 10.0.0.1 # 源地址
dst port 443 # 目标端口
逻辑组合
tcp and port 80 # TCP且端口80
udp or icmp # UDP或ICMP
!(arp or dns) # 排除ARP/DNS
高级过滤
len <= 1500 # 包长度≤1500字节
broadcast # 广播包
⚠️ 注意:
捕获过滤器不支持协议字段过滤(如 HTTP 方法)显示过滤器语法
🖥 显示过滤器
显示过滤器的语法更加灵活和强大,以下是一些常用的操作符和示例:
协议字段过滤
http.request.method == "GET" # HTTP GET请求
tcp.flags.syn == 1 # TCP SYN包
dns.qry.name contains "google" # DNS查询域名
复合条件
(ip.src == 192.168.1.1 and tcp.port == 8080) or http
!ssl and frame.len > 1000 # 非SSL且长度>1000
高级操作符
tcp.port in {80 443 8080} # 端口列表匹配
ip.addr == 10.0.0.1/24 # CIDR匹配
http matches "(?i)login" # 正则匹配(忽略大小写)
实用技巧
tcp.analysis.retransmission # 重传包检测
tcp.time_delta > 1 # TCP响应时间>1秒
💡 高效使用技巧
协议分层过滤
tcp.port == 8080 && http # 8080端口的HTTP流量
自动补全
输入协议名后按 Ctrl+Space
触发字段建议(如输入 http.
显示所有 HTTP 字段)
保存常用过滤
右键过滤器栏 → Save Filter
→ 命名保存
语法校验
-
✅ 绿色背景:语法正确
-
❌ 红色背景:存在错误
🧸 参考文献
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 UrAsh
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果