惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
G
Google Developers Blog
L
LangChain Blog
Y
Y Combinator Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
大猫的无限游戏
大猫的无限游戏
博客园 - Franky
V
Visual Studio Blog
小众软件
小众软件
月光博客
月光博客
A
About on SuperTechFans
H
Hackread – Cybersecurity News, Data Breaches, AI and More
T
The Blog of Author Tim Ferriss
有赞技术团队
有赞技术团队
M
MIT News - Artificial intelligence
阮一峰的网络日志
阮一峰的网络日志
Last Week in AI
Last Week in AI
博客园 - 【当耐特】
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
MongoDB | Blog
MongoDB | Blog
Jina AI
Jina AI
美团技术团队
量子位

博客园 - lsgxeva

SD 卡 / T F卡(Micro SD)检测工具解析:如何用硬件工具确保存储介质可靠性? 第一个案例策略 不用#ifdef写跨平台代码 Windbg常用调试命令 全频段阻塞 Practical Clean Architecture in Typescript, Rust & Python 摄像头配置 ClickToRunSvc logiccircuit help Python 模块 NumPy 影像处理 AI协作 Python 函数和类 Python 入门 VisionLink-RT VisionLink-AI-Glasse RK3588 firefly net n2n config OpenWrt 集成 openNDS 进行 强制门户(Captive Portal) 认证 OpenWrt 集成 easycwmpd 成为 TR-069协议中的设备端(CPE) eh.h acu100 bridge vlan config 卫星天线(KA 0.85m 4W_BUC)使用 SatBox331-20 Modem 的性能情况 OpenSpec OPSX 完整指南 Claude Skill Creator 2.0 完整上手攻略 Auto-Memory + CLAUDE.md Conductor 完整上手攻略 GitNexus 完整上手攻略 code-review-graph 完整上手攻略 Claude Code Hooks 完整开发者指南 Openwrt switch vlan配置 llm-course
wireshark筛选语句详解
lsgxeva · 2026-03-06 · via 博客园 - lsgxeva

wireshark筛选语句详解

来源 https://mp.weixin.qq.com/s/RzZiVQs9dBW6LUAAwTcNUg

工具介绍

wireshark是一款最常用到的抓包工具,抓包分析方法在进行复杂网络排障过程中非常实用

默认情况wireshark会抓取并显示所有的包,真正需要的包可能一闪而过,这时候便需要通过筛选公式来匹配所需分析的数据包

筛选本质上是一种判断,如

if a > 3

容易发现要进行一个判断,必须的三个因素是变量、比较符号、值

本文从这三个维度介绍常用一些内容,可按照实际需求将这三部分互相组合形成筛选条件

变量

  • IP地址相关
变量名含义
ip.addr 匹配源+目的IP
ip.src 匹配源IP
ip.dst 匹配目的IP
  • MAC地址相关

MAC地址支持三种格式

ff:ff:ff:ff:ff:ff

ff-ff-ff-ff-ff-ff

ffff.ffff.ffff

变量名含义
eth.addr 匹配源+目的MAC
eth.src 匹配源MAC
eth.dst 匹配目的MAC
  • 端口相关
变量名含义
tcp.port 匹配源+目的TCP端口
tcp.dstport 匹配源TCP端口
tcp.srcport 匹配目的TCP端口
udp.port 匹配源+目的UDP端口
udp.dstport 匹配源UDP端口
udp.srcport 匹配目的UDP端口
  • 协议相关

协议只需要直接输入协议名回车筛选

变量名含义
icmp icmp协议,即ping的出入包
http 超文本传输协议,web流量
ntp 时钟同步
smtp 邮件传输
snmp 简单网络管理协议
ssh 安全外壳协议
telnet 远程登录
dns 域名解析协议
arp 地址解析协议
bootp dhcp相关流量,要注意wireshark不是用dhcp筛选

比较符号

符号含义
== 等于
!= 不等于
> 大于
>= 大于等于
< 小于
<= 小于等于

字段含义
192.168.1.1 单个IP地址
192.168.1.0/24 IP地址段
ff-ff-ff-ff-ff-ff MAC地址格式一
ff.ff.ff.ff.ff.ff MAC地址格式二
ffff.ffff.ffff MAC地址格式三
0至65535 端口号

关于掩码计算可参考

一文搞懂掩码如何划分IP地址

掩码与反掩码地址计算器.v1.1

通常单一的筛选条件并不足以让我们找到所需的数据包,而是需要多个条件一同把对应包筛选出来。将多个条件连接在一块便需要逻辑运算符

逻辑运算符

符号含义
&& 与,即条件A与条件B需要同时满足
|| 或,即条件A与条件B中至少有一个满足
^^ 异或,即条件A与条件B必须一个满足,一个不满足
! 否,即条件不满足

如果需要使用三个及以上的逻辑运算符,务必看文末特殊情况部分的内容

示例

以下为常用的判断语句,帮助理解上述内容

判断语句输出内容
ip.addr == 192.168.1.1 目的IP包含192.168.1.1
ip.addr == 192.168.1.0/24 源或目的IP包含192.168.1.0/24网段
ip.src != 192.168.1.1 源IP不包含192.168.1.1
eth.addr == ff.ff.ff.ff.ff.ff 目的MAC地址包含ff.ff.ff.ff.ff.ff
tcp.port == 80 目的MAC地址包含TCP 80
ip.dst == 8.8.8.8 && udp.dstport = 53 目的IP为8.8.8.8目的端口为UDP 53
ip.dst == 8.8.8.8 || ip.dst == 8.8.8.7 目的IP为8.8.8.8目的IP为8.8.8.7

特殊场景

  • 排除源目的IP为192.168.1.1

使用ip.addr != 192.168.1.1是否可以实现?

答案是否定的。在wireshark中,**!=代表只要变量不等于值,即判断成功**

而ip.addr包含ip.src、ip.dst两项

假设源为192.168.1.1,目的为8.8.8.8,使用上述公式,显然目的不为8.8.8.8,wireshark会将其判断为属于ip.addr != 192.168.1.1

正确的语句应该是

!(ip.addr == 192.168.1.1)

像端口、MAC地址的筛选也是一样

  • 三个及以上逻辑运算符的使用

正常来说逻辑运算符的执行顺序为否>与>或>异或,可通过()来调整,括号中的会以最高优先级执行

而wireshark中不一定能按正常执行顺序执行,使用三个及以上运算符时建议按照需求用括号调整优先级,不要依赖默认顺序

例,筛选出以下内容:

  1. 目的IP为8.8.8.8并且目的端口为UDP 53
  2. 目的IP为8.8.8.7

建议的表达式为:

(ip.dst == 8.8.8.8 && udp.dstport == 53) || ip.dst == 8.8.8.7

而不是

ip.dst == 8.8.8.8 && udp.dstport == 53 || ip.dst == 8.8.8.7

=========== End