当前位置: 首页 > news >正文

Wireshark 过滤器命令大汇总:从入门到精通

Wireshark 过滤器命令大汇总:从入门到精通

Wireshark 作为最强大的网络封包分析软件之一,其核心功能之一就是过滤器。面对海量的网络数据,精准的过滤器能帮助我们从“数据海洋”中迅速捞出所需的“针”,极大提升排错和分析效率。本文将系统性地汇总 Wireshark 的两大类过滤器:捕获过滤器显示过滤器,并提供丰富的实用场景示例。

第一部分:捕获过滤器

捕获过滤器在数据包被抓取之前就进行过滤,只捕获符合条件的数据包,从而节省存储空间和系统资源。其语法源于 Berkeley Packet Filter (BPF)

基本语法结构: [协议] [方向] [主机] [值] [逻辑运算]

  • 协议:ether, ip, ip6, arp, tcp, udp 等。如果省略,默认是所有协议。
  • 方向: src(源), dst(目的), src or dst, src and dst(可省略,默认为 src or dst)。
  • 主机: host(主机), net(网络), port(端口)。
  • 值: 地址、端口号等。
  • 逻辑运算: and(与, &&), or(或, ||), not(非, !)。
常用捕获过滤器示例

  1. 过滤主机

    • host 192.168.1.1 - 捕获所有与 192.168.1.1 通信的流量(进出)。
    • src host 192.168.1.1 - 只捕获来源是 192.168.1.1 的流量。
    • dst host 192.168.1.1 - 只捕获目的是 192.168.1.1 的流量。
  2. 过滤端口

    • port 80 - 捕获所有 HTTP 流量(源或目的端口是 80)。
    • tcp port 443 - 捕获所有 HTTPS 流量。
    • src port 53 - 捕获来源端口为 53(通常是 DNS 查询响应)的流量。
    • udp portrange 1000-2000 - 捕获 UDP 端口范围在 1000 到 2000 之间的流量。
  3. 过滤网络

    • net 192.168.0.0/24 - 捕获所有与 192.168.0.x 网段通信的流量。
    • src net 10.0.0.0/8 - 捕获来源网络为 10.0.0.0/8 的流量。
  4. 协议过滤

    • arp - 只捕获 ARP 数据包。
    • icmp - 只捕获 ICMP (Ping) 数据包。
    • not broadcast and not multicast - 忽略广播和多播流量,只捕获单播流量。
  5. 复杂组合

    • src host 192.168.1.100 and (tcp port 80 or tcp port 443) - 捕获来自 192.168.1.100 的 HTTP 或 HTTPS 流量。
    • host www.google.com and not port 80 - 捕获与 www.google.com 通信的非 80 端口流量(可用于分析其使用的其他 API)。

第二部分:显示过滤器

显示过滤器在数据包被抓取之后进行过滤,它不会影响捕获的原始数据,只是改变视图的显示。其语法更强大、更直观。

基本语法结构: 协议.字段 运算符 值

  • 协议/字段:ip.src, tcp.port, http.request.uri
  • 比较运算符:
    • == (等于), != (不等于)
    • > (大于), < (小于), >= (大于等于), <= (小于等于)
  • 逻辑运算符:
    • and (与), or (或), not (非), xor (异或)
  • 其他运算符:
    • contains - 包含某个字符串,如 http.host contains "google"
    • matches - 使用正则表达式匹配,如 http.request.uri matches "\.(php|asp)$"
    • in - 判断字段是否在某个集合中。
常用显示过滤器分类汇总
1. IP 过滤
  • 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 的包。
  • ip.src == 10.0.0.1 and ip.dst == 192.168.1.100 - 显示从 10.0.0.1 到 192.168.1.100 的流量。
  • ip.addr == 192.168.0.0/16 - 显示与 192.168.x.x 网段相关的所有流量。
2. 端口与 TCP/UDP 过滤
  • tcp.port == 80 - 显示 TCP 源或目的端口为 80 的包。
  • udp.port == 53 - 显示 DNS 流量。
  • tcp.dstport == 3389 - 显示目的端口为 3389 (RDP) 的流量。
  • tcp.flags.syn == 1 and tcp.flags.ack == 0 - 显示 TCP SYN 包(三次握手第一步)。
  • tcp.analysis.retransmission - 显示所有重传的 TCP 包,对分析网络性能问题极其有用。
  • tcp.window_size < 1000 - 显示 TCP 窗口大小小于 1000 的包,可能指示接收端拥塞。
3. 协议过滤
  • http - 显示所有 HTTP 协议包。
  • dns - 显示所有 DNS 协议包。
  • icmpicmp.type == 8 - 显示所有 ICMP 包或特定类型(如 8 为 Echo Request)。
  • arp - 显示 ARP 协议包。
  • ssltls - 显示 SSL/TLS 握手和应用数据。
4. 应用层协议过滤 (HTTP, DNS等)
  • HTTP:
    • http.request.method == "GET" - 显示所有 HTTP GET 请求。
    • http.request.method == "POST" - 显示所有 HTTP POST 请求。
    • http.response.code == 404 - 显示所有 404 响应的包。
    • http.host contains "baidu.com" - 显示 Host 头中包含 “baidu.com” 的 HTTP 请求。
    • http.request.uri == "/images/logo.png" - 显示请求特定 URI 的 HTTP 包。
  • DNS:
    • dns.qry.name == "www.example.com" - 显示对特定域名的 DNS 查询。
    • dns.flags.response == 1 - 显示所有 DNS 响应包。
    • dns.resp.type == 5 - 显示 DNS CNAME 记录响应。
5. 复合条件与高级技巧
  • (http or ssl) and ip.src == 192.168.1.100 - 显示来自 192.168.1.100 的 HTTP 或 SSL 流量。
  • not arp and not icmp - 不显示 ARP 和 ICMP 包,净化视图。
  • tcp.stream eq 10 - 显示整个 TCP 流(会话),编号为 10。这是分析完整会话的利器!
  • frame.time_relative >= 60.0 - 显示从捕获开始 60 秒之后的数据包。
  • data.data - 显示包含应用层数据的包(常用于非标准协议分析)。

第三部分:实用场景与技巧

  1. 排查网页访问慢:

    • 先过滤 http and ip.addr == 目标网站IP,查看 HTTP 请求响应时间。
    • 再过滤 tcp.analysis,查看是否有 retransmission(重传)、duplicate ack(重复确认)等,判断是否是网络问题。
  2. 抓取登录密码(安全测试):

    • 使用显示过滤器 http.request.method == "POST",在包详情中展开 HTML Form URL Encoded 即可看到提交的用户名和密码。
  3. 分析特定连接问题:

    • 右键有问题的包 -> Follow -> TCP Stream,Wireshark 会自动生成 tcp.stream eq X 过滤器,让你专注于这个会话。
  4. 保存过滤器:

    • 在过滤器输入框输入常用的过滤器后,点击最右边的书签图标,可以将其保存为“过滤器按钮”,方便一键点击。
  5. 自动补全:

    • 在输入显示过滤器时,Wireshark 会提供自动补全提示,这是学习和验证语法的好方法。

总结

特性捕获过滤器显示过滤器
作用阶段数据包进入前数据包捕获后
语法BPF 语法Wireshark 专属语法
效率,不消耗磁盘和内存存储无用包,所有数据都已捕获,只是隐藏
灵活性,条件判断相对简单极高,可对任何协议字段进行复杂判断
用途在繁忙链路上抓取特定流量,避免资源耗尽对已捕获的数据包进行深入、灵活的分析

最佳实践: 在不确定目标时,可以先使用一个宽泛的捕获过滤器(如 not arp)或直接全部捕获,然后利用强大的显示过滤器进行精细化分析。

掌握 Wireshark 过滤器是成为网络分析专家的必经之路。在实践中多尝试、多组合,将这些命令融会贯通,从而让 Wireshark 真正成为您手中的“网络显微镜”。

http://www.dtcms.com/a/465813.html

相关文章:

  • 网站软件免费下载wordpress 插件漏洞
  • 【Java数据结构】HashMap 的深入解析与优化实践
  • 免费网站个人注册网页设计教程与实训
  • 仿搜狐视频网站源码品牌营销策划方案报价
  • MySQLEXPLAIN命令详解从执行计划读懂SQL性能瓶颈
  • 【FastAPI】学习笔记
  • 商丘网站制作电话企业网站 三合一
  • 海东高端网站建设大连网页
  • 数据科学与回归模型相关试卷
  • 深度学习之YOLO系列YOLOv1
  • 生成式 AI 冲击下,网络安全如何破局?
  • 网站建设的3个基本原则做网站需要多少
  • 免费的作文网站cloudfare wordpress
  • 开源 java android app 开发(十八)最新编译器Android Studio 2025.1.3.7
  • 网络模型训练完整代码
  • 部署k8s集群+containerd+dashboard
  • PHP网站建设的课后笔记wordpress divi主题
  • 网站开发相关文献广州 深圳 外贸网站建设公司
  • 从零起步学习Redis || 第十二章:Redis Cluster集群如何解决Redis单机模式的性能瓶颈及高可用分布式部署方案详解
  • 【Day 73】Linux-自动化工具-Ansible
  • 网站做英文版有用吗网站建设后如何检测
  • Color Wheel for Mac:一键解锁专业配色,设计效率翻倍
  • 五合一自助建站网站套用别人产品图片做网站
  • 注册公司在哪个网站宝塔搭建wordpress博客
  • Redis-哈希(Hash)类型
  • 无需登录!无限制轻松体验Claude4.5智能答疑
  • 3.5.1 抹灰工程施工
  • 建站软件可以不通过网络建设吗代发关键词包收录
  • 编程题:递归与分治练习题3道(C语言实现)
  • 龙海市建设局网站有什么公司做网站好