首页 抖音快讯文章正文

Wireshark过滤语法大全,收藏!

抖音快讯 2025年06月27日 19:46 1 admin

Wireshark 提供了两种过滤机制:捕获过滤(Capture Filter)和显示过滤(Display Filter)。这两种过滤各司其职,分别在数据包捕获和分析阶段发挥作用。

Wireshark过滤语法大全,收藏!

捕获过滤

"

数据抓取的第一道防线

捕获过滤在数据包进入 Wireshark 之前生效,决定了哪些数据包会被记录。它的核心优势是减少捕获的数据量,降低系统资源消耗,尤其在高流量网络环境中至关重要。捕获过滤使用的是 Berkeley Packet Filter(BPF) 语法,这种语法在 tcpdump 和 Wireshark 中通用。

常用捕获过滤语法:

  • 基于主机host 192.168.1.1(捕获与指定 IP 相关的流量)。
  • 基于端口port 80(捕获指定端口的流量,如 HTTP)。
  • 基于协议tcpudp(捕获特定协议的流量)。
  • 组合逻辑host 192.168.1.1 and port 80(捕获特定主机和端口的流量)。
  • 排除流量not port 22(排除 SSH 流量)。

假设你需要监控一台服务器(IP 为 192.168.1.100)上的 HTTP 流量,可以设置捕获过滤为 host 192.168.1.100 and port 80。这样,Wireshark 只会捕获与该服务器相关的 HTTP 数据包,极大减少无关数据干扰。

显示过滤

"

从海量数据中挖掘真相

显示过滤在数据包捕获后生效,用于从已捕获的数据中筛选出符合条件的内容。相比捕获过滤,显示过滤的语法更强大、更灵活,能够深入协议字段进行精确匹配。显示过滤使用 Wireshark 专有的语法,基于协议、字段和值的组合。

显示过滤的核心结构协议.字段 运算符 值。例如,http.request.method == "GET" 表示筛选 HTTP GET 请求。

基本运算符

  • • 比较运算:==(等于)、!=(不等于)、><>=<=
  • • 逻辑运算:andornot
  • • 包含匹配:contains(字符串包含)、matches(正则表达式匹配)。

如果你想分析某个网站(域名 example.com)的 HTTPS 流量,可以使用显示过滤 ssl.handshake.extensions_server_name contains "example.com",快速定位 TLS 握手中的服务器名称。

捕获过滤语法

捕获过滤的语法基于 BPF,结构简洁但功能强大。

1. 基于 IP 和主机

  • 单 IPhost 192.168.1.1(捕获与该 IP 相关的所有流量)。
  • IP 范围net 192.168.1.0/24(捕获整个子网的流量)。
  • 源或目标 IPsrc host 192.168.1.1(仅捕获源 IP 为指定地址的流量);dst host 192.168.1.1(仅捕获目标 IP 的流量)。

2. 基于端口

  • 单一端口port 80(捕获 HTTP 流量)。
  • 端口范围portrange 1024-65535(捕获指定范围内的端口流量)。
  • 源或目标端口src port 53(捕获源端口为 DNS 的流量)。

3. 基于协议

  • 常见协议tcpudpicmparp
  • 链路层协议ether host 00:11:22:33:44:55(捕获指定 MAC 地址的流量)。
  • 复杂协议ip proto 47(捕获 GRE 协议流量)。

4. 组合与排除

  • 多条件组合host 192.168.1.1 and port 443 and not src port 22(捕获指定主机的 HTTPS 流量,排除 SSH)。
  • 多主机host 192.168.1.1 or host 192.168.1.2(捕获两个主机的流量)。

注意事项

  • • 捕获过滤对性能敏感,过于复杂的过滤可能导致丢包。
  • • 某些高级协议(如 HTTP/2)在捕获过滤中难以直接匹配,建议结合显示过滤使用。

显示过滤语法

显示过滤是 Wireshark 的灵魂,允许你深入协议的每一个字段。以下按协议和场景分类,介绍常用的显示过滤语法。

1. 通用协议过滤

  • IP 协议ip.addr == 192.168.1.1(源或目标 IP 匹配)。• ip.src == 192.168.1.1(仅源 IP)。• ip.dst == 192.168.1.1(仅目标 IP)。
  • TCP/UDP 协议tcp.port == 80(TCP 端口 80,源或目标)。• tcp.srcport == 12345(源端口)。• tcp.flags.syn == 1(TCP SYN 标志,捕获连接建立)。
  • ICMP 协议icmp.type == 8(Ping 请求)。• icmp.code == 0(Ping 响应)。

2. 应用层协议过滤

  • HTTPhttp.request(所有 HTTP 请求)。• http.request.method == "POST"(仅 POST 请求)。• http.host contains "example.com"(匹配特定域名)。• http.response.code == 404(匹配 404 错误)。
  • DNSdns.qry.name contains "example.com"(DNS 查询包含特定域名)。• dns.resp.type == A(DNS A 记录响应)。
  • TLS/SSLssl.handshake.type == 1(TLS 客户端 Hello 包)。• ssl.record.content_type == 23(TLS 应用数据)。• ssl.handshake.extensions_server_name contains "example.com"(匹配服务器名称)。

3. 高级匹配技巧

  • 字符串匹配http.user_agent contains "Chrome"(匹配包含 Chrome 的用户代理)。
  • 正则表达式http.host matches ".*\\.example\\.com"(匹配 example.com 的子域名)。
  • 时间过滤frame.time >= "Jun 26, 2025 12:00:00"(筛选指定时间后的数据包)。
  • 数据包长度frame.len > 1000(筛选长度大于 1000 字节的包)。

4. 组合逻辑

  • 复杂条件tcp.port == 80 and ip.src == 192.168.1.1(HTTP 流量且源 IP 匹配)。
  • 排除干扰not arp and not dns(排除 ARP と DNS 流量)。
  • 多值匹配ip.addr in {192.168.1.1 192.168.1.2}(匹配多个 IP)。

假设你需要排查某个客户端(192.168.1.100)访问 example.com 时出现的 503 错误,可以使用显示过滤:

ip.src == 192.168.1.100 and http.host contains "example.com" and http.response.code == 503

这将精准定位相关数据包,帮助你快速分析问题。

发表评论

泰日号Copyright Your WebSite.Some Rights Reserved. 网站地图 备案号:川ICP备66666666号 Z-BlogPHP强力驱动