打开 Wireshark,看到屏幕上滚动的上千条数据包,是不是有点懵?👀
要找的那一条藏在一大堆 TCP、UDP、ARP、DNS 包中,感觉像大海捞针…🕵️♂️
或许你知道可以过滤数据包,但过滤表达式总是写不对,急的满头大汗…
别急,过滤,其实只需一个表达式。🚀
🎯什么是显示过滤器
Wireshark 支持两种类型的过滤:
类型 | 说明 |
---|---|
捕获过滤 | 在抓包前设置,只抓符合条件的数据 |
显示过滤 | 抓包后对结果筛选,不会丢失数据 |
本篇我们聚焦 显示过滤,也就是在抓完包之后,通过设置筛选条件,仅显示你感兴趣的内容。
🧩 表达式形式通常是:
协议.字段 运算符 值
例如:
udp.port == 12345
ip.addr == 192.168.1.100
使用位置:Wireshark 界面顶部的过滤栏,输入后按回车即可生效 ✅
🔢常见显示过滤技巧
1️⃣ 端口过滤
常用于查看某个服务或自定义协议的网络流量。
🛠 语法:
<protocol>.port == <port_number> // 匹配源或目的端口
<protocol>.srcport == <port_number> // 仅匹配源端口
<protocol>.dstport == <port_number> // 仅匹配目的端口
💡 示例:
udp.port == 12345
:显示所有与端口 12345有关的UDP数据包udp.srcport == 12345
:显示从端口12345发送的UDP数据包udp.dstport == 12345
:显示发往端口12345的UDP数据包
2️⃣ IP 地址过滤
用于筛选与某个主机相关的所有流量,适合定位客户端/服务器通信问题。
🛠 语法:
ip.addr == <ip_address> // 匹配源或目的 IP
ip.src == <ip_address> // 仅匹配源 IP
ip.dst == <ip_address> // 仅匹配目的 IP
💡 示例:
ip.addr == 192.168.1.100
:显示所有与该 IP 有关的包ip.dst == 192.168.100
:显示来自192.168.1.100
的数据包ip.src == 192.168.1.100
:显示发往192.168.1.100
的数据包
3️⃣ 逻辑组合过滤
组合多个条件,进行更精细的筛选。
🛠 语法:
&& // 与(AND)
|| // 或(OR)
! // 非(NOT)
💡 示例:
udp.port == 12345 && ip.dst == 192.168.1.100
:匹配特定端口 + 目标地址udp.port == 12345 && !(ip.addr == 127.0.0.1)
:排除本地回环地址udp.port == 12345 || udp.port == 12344
:匹配多个端口
4️⃣ 协议过滤
快速查看指定协议的所有数据包。
🛠 常用表达式:
http
dns
icmp
udp
tcp
5️⃣ 实用操作技巧 ⚒️
✅ 保存过滤器
- 在过滤器栏输入表达式后,点击右边 “➕” 可保存为常用过滤器。
📝 适合经常使用的表达式(如 udp.port == 12345
)
✅ 右键快速过滤
- 右键任意数据包字段 →
Apply as Filter > Selected
- 自动生成对应表达式,无需手动输入 🧙
✅ 自定义颜色高亮
View > Coloring Rules
添加匹配规则- 可设置背景色、字体色,让目标流量一眼可见 🌈
💡 示例:
- 设置
udp.port == 12345
的背景为紫色
🧾结语
Wireshark 的显示过滤器是你分析网络问题的放大镜 🔍
希望本文列举的过滤表达式和操作技巧,可以帮助你在茫茫数据包海洋中快速锁定目标🌊🧭
下次就试试看吧!🚀
本文首发于微信公众号《Linux在秋名山》,欢迎大家关注~