«

Wireshark 常用表达式笔记

时间:2025-7-8 10:28     作者:wanzi     分类: 网络


使用Qwen 按 协议分类 + 应用场景 组织,覆盖 Web、流媒体、物联网、信令服务器等典型场景总结一篇可以随时翻看的笔记,适用于 抓包分析、故障排查、安全审计 等用途。


🧰 一、通用基础过滤表达式

1. 协议基础

协议 表达式 说明
TCP tcp 所有 TCP 协议流量
UDP udp 所有 UDP 协议流量
DNS dns 所有 DNS 查询/响应
ICMP icmp 所有 ICMP(Ping)流量
ARP arp 地址解析协议流量
HTTP http HTTP 协议流量(不包括 HTTPS)
TLS/SSL tls 加密流量(HTTPS、MQTT over TLS 等)

2. 端口与地址过滤

场景 表达式 说明
指定端口 tcp.port == 80udp.port == 53 过滤特定端口流量
指定 IP ip.addr == 192.168.1.1 过滤源或目的 IP
源 IP ip.src == 192.168.1.1 仅源地址匹配
目的 IP ip.dst == 192.168.1.1 仅目的地址匹配
MAC 地址 eth.addr == 00:11:22:33:44:55 过滤特定 MAC 地址

🌐 二、Web 与小程序相关

1. HTTP 请求与响应

场景 表达式 说明
GET 请求 http.request.method == "GET" 过滤所有 GET 请求
POST 请求 http.request.method == "POST" 过滤所有 POST 请求
特定路径请求 http.request.uri contains "/login" URI 包含关键词
HTTP 状态码 http.response.code == 200 过滤特定状态码(如 404、500)
Host 头 http.host == "example.com" 过滤特定域名请求
大响应体 http.content_length > 1000 过滤大文件传输

2. HTTPS/TLS

场景 表达式 说明
TLS 握手 tls.handshake.type == 1 ClientHello(类型 1)
证书信息 tls.x509_certificate 显示证书字段
SNI 过滤 tls.handshake.extensions_server_name == "example.com" 过滤特定域名的 HTTPS 请求
解密流量 配合 SSLKEYLOGFILE 解密(需浏览器支持) 分析 HTTPS 内容

📺 三、流媒体协议

1. RTMP(实时消息传输协议)

场景 表达式 说明
RTMP 流量 rtmp 过滤所有 RTMP 协议
推流请求 rtmp.app == "live" 过滤推流应用名
流名称 rtmp.playpath == "stream123" 过滤特定流名

2. HLS(HTTP Live Streaming)

场景 表达式 说明
M3U8 索引文件 http.request.uri ends_with ".m3u8" 过滤索引文件请求
TS 分片 http.request.uri ends_with ".ts" 过滤视频分片请求
HLS 域名 http.host == "hls.example.com" 过滤特定 CDN 的 HLS 流量

3. RTSP(实时流协议)

场景 表达式 说明
RTSP 请求 rtsp.request.method 显示所有 RTSP 方法(如 SETUP、PLAY)
OPTIONS 请求 rtsp.request.method == "OPTIONS" 过滤 OPTIONS 方法
流 ID rtsp.rtp_interleaved == 0 过滤 RTP 通道数据

4. WebRTC(实时通信)

场景 表达式 说明
ICE 候选 stun.attribute.type == 0x0001 过滤 STUN Binding Request
SDP 信息 sip.session_idsdp 显示会话描述协议内容
RTP/RTCP rtprtcp 过滤音视频传输流量

📡 四、物联网与信令协议

1. SIP(会话发起协议)

场景 表达式 说明
SIP 注册 sip.method == "REGISTER" 过滤注册请求
呼叫建立 sip.method == "INVITE" 过滤呼叫邀请
呼叫终止 sip.method == "BYE" 过滤挂断请求
SIP 域名 sip.host == "sip.example.com" 过滤特定域的 SIP 流量

2. MQTT(轻量级物联网协议)

场景 表达式 说明
MQTT 连接 mqtt.conflag.cleansession == 1 过滤 Clean Session 为 1 的连接
主题订阅 mqtt.topic == "sensor/temperature" 过滤特定主题的消息
QoS 等级 mqtt.qos_level == 2 过滤 QoS 2 的消息
连接失败 mqtt.return_code != 0 过滤连接拒绝(返回码非 0)

3. GB28181(安防视频联网标准)

场景 表达式 说明
REGISTER 请求 sip.method == "REGISTER" 设备注册
INVITE 请求 sip.method == "INVITE" 视频流拉取
SDP 媒体类型 sdp.media == "video" 过滤视频流描述
RTP 端口 rtp.port == 8000 过滤视频传输端口

🌍 五、网络服务与基础协议

1. DNS

场景 表达式 说明
DNS 查询 dns.qry.name == "example.com" 过滤特定域名查询
A 记录 dns.qry.type == 1 IPv4 地址查询
AAAA 记录 dns.qry.type == 28 IPv6 地址查询
DNS 响应延迟 dns.time > 0.1 过滤响应时间超过 100ms 的请求

2. NTP(网络时间协议)

场景 表达式 说明
NTP 请求 ntp 过滤所有 NTP 流量
时间偏移 ntp.offset > 1 过滤偏移超过 1 秒的同步

🧪 六、异常检测与高级技巧

1. TCP 异常

场景 表达式 说明
重传 tcp.analysis.retransmission 过滤 TCP 重传包
乱序 tcp.analysis.out_of_order 过滤乱序包
零窗口 tcp.window_size == 0 接收方窗口关闭(可能导致卡顿)

2. 组合过滤(逻辑运算)

场景 表达式 说明
多条件与 http && ip.addr == 192.168.1.1 同时满足 HTTP 和 IP 条件
多条件或 sip || rtmp 过滤 SIP 或 RTMP 流量
非条件 !arp 排除 ARP 流量

3. 正则匹配(需启用 GRegex

场景 表达式 说明
URI 匹配 http.request.uri matches ".*\.php" 过滤 PHP 脚本请求
User-Agent http.user_agent matches "iPhone" 过滤 iPhone 客户端请求

📊 七、统计与分析工具(Wireshark 内置)

工具 路径 说明
协议分级 Statistics > Protocol Hierarchy 查看流量协议分布
会话统计 Statistics > Conversations 分析通信对(IP + 端口)
流量图 Statistics > Flow Graph 生成 TCP/UDP 流量图
IO 统计 Statistics > IO Graphs 自定义 X/Y 轴分析流量趋势

📌 注意事项

  1. HTTPS 解密:需配置 SSLKEYLOGFILE 环境变量(Chrome/Firefox 支持),或使用服务器私钥解密。
  2. 捕获过滤 vs 显示过滤
    • 捕获过滤(tcpdump 语法):port 80 and host 192.168.1.1
    • 显示过滤(Wireshark 语法):http && ip.addr == 192.168.1.1
  3. 性能优化:避免使用复杂正则或全量抓包,可通过 capture filter 减少数据量。