wireshark过滤器怎么使用?
Wireshark过滤器分为抓包与显示两类。抓包过滤器在捕获前生效,使用BPF语法组合类型、方向、协议和逻辑运算符,从源头筛选数据。显示过滤器在捕获后使用,通过IP、端口、协议及比较与逻辑运算符灵活呈现已抓取的数据。两者分别适用于精准捕获与精细分析,能显著提升网络排查效率。
不少朋友在刚开始接触Wireshark时,都会对过滤器的使用感到困惑。今天,我们就来把这两个核心过滤器的用法彻底讲清楚。
简单来说,Wireshark的过滤器分为两大阵营:抓包过滤器和显示过滤器。两者的设计思路截然不同。抓包过滤器重在“取舍”——只抓我想要的包,从源头控制数据量。而显示过滤器则重在“呈现”——包已经全抓回来了,只是根据需要决定哪些显示给你看。理解这个根本区别,是玩转过滤器的第一步。
1. 抓包过滤器
抓包过滤器,顾名思义,是在数据包被抓取之前就生效的。它遵循一套经典的BPF(伯克利封包过滤器)语法。这套语法的核心,就在于组合四个关键元素:类型(Type)、方向(Dir)、协议(Proto)和逻辑运算符。
我们来拆解一下:
- 类型(Type):指定目标是主机(host)、网段(net)还是端口(port)。
- 方向(Dir):区分数据包是来自(src)还是发往(dst)该目标。
- 协议(Proto):直接指定协议名,如tcp、udp、http等。
- 逻辑运算符:用于连接多个条件,包括与(&&)、或(||)、非(!)。
掌握了这四个元素,你就可以像搭积木一样组合出各种过滤规则。比如:
src host 192.168.31.1:只抓取源IP是192.168.31.1的数据包。tcp || udp:抓取所有TCP或UDP协议的数据包,把其他协议(如ICMP)的流量过滤掉。
具体怎么用呢?操作上有个关键点:必须先停止当前抓包。然后,点击工具栏的“捕获”按钮,选择“选项”。

在弹出的“捕获选项”界面底部,你会看到一个输入框。在这里输入你的BPF过滤语句,再点击“开始”,Wireshark就会按照你的指令进行精准抓包了。

这里有个贴心提示:输入框有语法高亮功能。显示为绿色,代表语法正确;变成红色,则说明表达式写错了,需要检查修正。
2. 显示过滤器
显示过滤器则灵活得多,无论是在抓包过程中还是抓包结束后,你都可以随时使用。它的语法结构更丰富,包含五个核心元素:IP、端口、协议、比较运算符和逻辑运算符。
我们来具体看看:
- IP地址:常用字段有
ip.addr(任一IP)、ip.src(源IP)、ip.dst(目标IP)。 - 端口:例如
tcp.port(任一端口)、tcp.srcport(源端口)、tcp.dstport(目标端口)。 - 协议:直接输入协议名即可。
- 比较运算符:就是编程里常见的那些,如等于(==)、不等于(!=)、大于(>)等。
- 逻辑运算符:包括 and、or、not,以及一个不太常用的xor(表示有且仅有一个条件成立)。
同样,自由组合这些元素就能实现复杂过滤:
ip.addr == 192.168.32.121:显示所有与该IP地址(无论是源还是目标)相关的数据包。tcp.port == 80:显示任何一端端口为80的TCP流量。
它的使用方式极其简单直接:在主窗口上方的过滤栏中,直接输入表达式即可,修改后立即生效。

同样,这个过滤栏也有语法检查功能,绿色代表正确,红色代表存在语法错误,方便你快速排错。
总结一下,抓包过滤器帮你从海量流量中“捞针”,适合目标明确、流量巨大的场景;而显示过滤器则让你在已捕获的数据中“沙里淘金”,适合精细分析和问题排查。根据实际场景灵活选用,你的网络分析效率会大大提升。


































