Wireshark 是一个强大的网络协议分析工具,支持多种类型的过滤器来帮助用户捕获和分析网络流量。

根据使用场景和功能,Wireshark 的过滤器可以分为以下两类:

1. 捕获过滤器(Capture Filter)

  • 定义:在数据包捕获阶段应用的过滤器,用于限制 Wireshark 捕获哪些数据包。
  • 特点:
    • 使用 BPF(Berkeley Packet Filter)语法。
    • 在捕获过程中实时生效,减少不必要的数据包被保存到内存或磁盘中。
    • 性能更高,适合大规模流量环境。
  • 常见用法:
host 192.168.1.1          # 捕获与 192.168.1.1 相关的所有流量
port 80 # 捕获端口为 80 的流量
tcp and src 192.168.1.1 # 捕获来自 192.168.1.1 的 TCP 流量

2. 显示过滤器(Display Filter)

  • 定义:在数据包捕获完成后,用于筛选和显示特定数据包的过滤器。
  • 特点:
    • 使用 Wireshark 自定义语法,比捕获过滤器更灵活。
    • 在捕获完成后应用,不会影响实际捕获的数据。
    • 支持复杂的逻辑表达式和协议字段过滤。
  • 常见用法:
ip.addr == 192.168.1.1       # 显示与 192.168.1.1 相关的所有流量
tcp.port == 80 # 显示端口为 80 的 TCP 流量
http.request.method == "GET" # 显示 HTTP GET 请求
dns.qry.name contains "google" # 显示包含 "google" 的 DNS 查询

过滤器语法对比

功能 捕获过滤器(BPF) 显示过滤器(Wireshark)
语法 BPF Wireshark 自定义语法
应用时间 数据包捕获阶段 数据包捕获完成后
性能 更高效 较低效
灵活性 较低 更高
示例 host 192.168.1.1 ip.addr == 192.168.1.1

常用过滤器示例

1. 捕获过滤器示例

  • 按 IP 地址过滤:
host 192.168.1.1
  • 按端口过滤:
port 80
  • 按协议过滤:
tcp udp icmp
  • 组合条件:
tcp and src 192.168.1.1

2. 显示过滤器示例

  • 按 IP 地址过滤:
ip.addr == 192.168.1.1
  • 按端口过滤:
tcp.port == 80
  • 按协议字段过滤:
http.request.method == "GET" dns.qry.name contains "google"
  • 组合条件:
ip.addr == 192.168.1.1 && tcp.port == 80

如何选择过滤器?

  • 如果需要减少捕获的数据量:使用捕获过滤器(Capture Filter)。
  • 如果需要灵活分析已捕获的数据:使用显示过滤器(Display Filter)。

通过合理使用这两种过滤器,可以显著提高网络分析的效率和准确性。

Link:https://www.cnblogs.com/farwish/p/18781827

Wireshark 的过滤器类型的更多相关文章

  1. 关于wireshark的过滤器规则学习小结

    关于wireshark的过滤器规则学习小结 [前言] 这两天一直在熟悉wireshark的过滤器语法规则,以前也接触过这个工具,但只是学校老师教的如何去选择一个接口进行抓取,以及如何去分析一个包的数据 ...

  2. ASP.NET MVC中有四种过滤器类型

    在ASP.NET MVC中有四种过滤器类型

  3. 一站式学习Wireshark(十):应用Wireshark显示过滤器分析特定数据流(下)

    介绍 掌握显示过滤器对于网络分析者来说是一项必备的技能.这是一项大海捞针的技巧.学会构建,编辑,保存关键的显示过滤器能够节省数小时的时间. 与捕捉过滤器使用的BPF语法不同,显示过滤器使用的是Wire ...

  4. 一站式学习Wireshark(九):应用Wireshark显示过滤器分析特定数据流(上)

    介绍 掌握显示过滤器对于网络分析者来说是一项必备的技能.这是一项大海捞针的技巧.学会构建,编辑,保存关键的显示过滤器能够节省数小时的时间. 与捕捉过滤器使用的BPF语法不同,显示过滤器使用的是Wire ...

  5. wireshark基础学习—第三部分wireshark的过滤器语法

    我们都知道,wireshark可以实现本地抓包,同时Wireshark也支持remote packet capture protocol(rpcapd)协议远程抓包,只要在远程主机上安装相应的rpca ...

  6. wireshark显示过滤器的几种用法(转自他人博客)

    本文章转自:http://blog.51cto.com/houm01/1872652 几种条件操作符 ==   eq    等于    ip.addr == 192.168.0.1   ip.addr ...

  7. Wireshark 捕获过滤器的语法

    转自:http://blog.csdn.net/qq_29277155/article/details/52077239 前言 我们都知道,wireshark可以实现本地抓包,同时Wireshark也 ...

  8. wireshark基础学习—第四部分wireshark过滤器总结

    这两天一直在熟悉wireshark的过滤器语法规则,以前也接触过这个工具,但只是学校老师教的如何去选择一个接口进行抓取,以及如何去分析一个包的数据.可惜当时对此也没有过多深入.对于我当前,并未接触太多 ...

  9. Wireshark教程之过滤器设置

    实验目的 1.工具介绍 2.主要应用 实验原理 1.网络管理员用来解决网络问题 2.网络安全工程师用来检测安全隐患 3.开发人员用来测试执行情况 4.学习网络协议 实验内容 1.抓取特定数据流 2.显 ...

  10. wireshark抓包新手使用教程

    wireshark是非常流行的网络封包分析软件,可以截取各种网络数据包,并显示数据包详细信息.常用于开发测试过程各种问题定位. Wireshark软件安装 软件下载路径:wireshark官网.按照系 ...

随机推荐

  1. 基于Netty,从零开发IM(四):编码实践篇(系统优化)

    本文由作者"大白菜"分享,有较多修订和改动.注意:本系列是给IM初学者的文章,IM老油条们还望海涵,勿喷! 1.引言 前两篇<编码实践篇(单聊功能)>.<编码实践 ...

  2. Verilog6_串行通信协议

    一.通信协议概述 1.串行通信与并行通信 串行通信(serial communication):数据通过单根数据线一位一位地传输:成本低但速度慢:适用于远距离传输,用于计算机与外设之间,如UART.\ ...

  3. session实现登录以及session与Cookie的关系

    基于session实现登录 发送短信验证码: public Result sendCode(String phone, HttpSession session) { // 1.校验手机号 if (Re ...

  4. Github配置SSH避免远程提交重复输入用户名密码

    一. 前言 Logon failed, use ctrl+c to cancel basic credential prompt. 是不是提交会遇到上述错误,每次远程提交至Github需要重新输入用户 ...

  5. 夜莺监控支持 ES 日志告警了

    夜莺项目( https://github.com/ccfos/nightingale )发布了 v8.0.0-beta.3 版本,这个版本主要是支持了 ES 日志告警,下面给大家介绍一下. 新版本下载 ...

  6. unordered_map比map慢?

    先说结论:unordered_map不维护键的顺序,因此不能按顺序访问元素,因此如果你需要遍历表时若选用unordered_map就肯定比map慢 1. 数据结构与底层实现 unordered_map ...

  7. WPF 设置DataGrid 选中的背景色和前景色

    <DataGrid > <DataGrid.CellStyle> <Style TargetType="DataGridCell"> <S ...

  8. Linux系统安全限制:禁用或限制用户ssh登录(sshd_config、hosts.allow、hosts.deny、nologin、passwd)

    我们知道Linux系统安全性设置有很多方式.常见的有通过firewall防火墙.或者iptables规则实现放行.拦截屏蔽某些特征的网络请求.示例:iptables限制ssh链接服务器     还有一 ...

  9. 【译】使用 Visual Studio Profiler 进行基准测试

    在 Visual Studio 17.13 预览版中,我们发布了更新的 BenchmarkDotNet 诊断器,允许您使用性能分析器中的更多工具来分析基准测试.有了这个变化,可以非常快速地挖掘 CPU ...

  10. C 2017笔试题

    1.下面程序的输出结果是 int x=3; do { printf("%d\n",x-=2); }while(!(--x)); 输出:1 -2 解析:x初始值为3,第一次循环中运行 ...