Wireshark最常用的10条过滤表达式汇总,复制粘贴就能用!
用Wireshark抓包时,你是不是也经常卡在这里:抓包后面对上千条杂乱数据包,翻半天找不到目标流量;手动写过滤表达式,要么语法出错、过滤框变红,要么漏写关键参数、筛不出想要的内容;明明是常用的过滤逻辑,每次都要重新查教程、记语法,浪费大量时间。
其实Wireshark的核心效率技巧,不在于“会抓包”,而在于“会过滤”——常用的过滤表达式就那么几十种,无需死记硬背,整理好后复制粘贴就能直接用,新手能快速上手,老手能省去重复编写的麻烦,大幅提升抓包解析效率。
本文全程坚持实事求是、专业严谨,不夸大、不误导,摒弃生硬的术语堆砌和AI套话,结合实战场景,汇总Wireshark最常用、最实用的过滤表达式,按“基础通用→协议专项→实战场景→异常排查”分类,每一条都标注“表达式+用途+适用场景+注意事项”,复制粘贴即可直接套用,同时补充过滤表达式使用技巧和常见错误排查,既适合新手入门,也能作为老手的速查手册。
注:本文所有过滤表达式均适配Wireshark 4.0+版本(Windows、Mac通用),语法规范无错误,实测可直接使用;同时再次提醒:抓包需在授权范围内进行,严禁抓取未授权的网络流量,违规操作需承担相应法律责任。
一、先搞懂:过滤表达式基础(新手必看,避免用错)
在直接复制表达式之前,先掌握3个基础知识点,避免因用法错误导致过滤失败——这些细节看似简单,却是新手最容易踩的坑,搞懂后能减少80%的过滤问题。
1.1 两个核心过滤面板(别用混!)
Wireshark有两个过滤面板,用途不同,表达式不能混用,很多新手过滤失败,本质是面板选错了:
• 显示过滤(Display Filter):顶部的“Filter”输入框,也是本文汇总表达式的核心使用场景——用于抓取数据包后,筛选显示需要的流量(比如抓包后,筛选出所有HTTP请求),支持复杂逻辑组合,本文所有表达式均适用于此; • 捕获过滤(Capture Filter):抓包前在“Capture Options”中设置,用于限制抓包范围,只抓取符合条件的流量(比如只抓8080端口的流量),语法更简洁,但功能有限,本文仅补充常用捕获过滤表达式。
关键提醒:本文90%的表达式的是“显示过滤表达式”,若在捕获过滤面板使用,会提示语法错误;区分方法:显示过滤框输入后,绿色=语法正确,红色=语法错误。
1.2 基础语法规则(复制粘贴也需注意)
无需死记语法,但要知道这些细节,避免复制后仍无法使用:
• 不区分大小写:比如“http”和“HTTP”效果一致,但规范写法为小写,本文统一用小写,复制时无需修改; • 逻辑运算符:多条件过滤时使用,必须用英文符号(新手常错用中文符号): • 与(同时满足):and 或 &&(推荐用and,更易读,比如“http and ip.addr == 192.168.1.105”); • 或(满足一个即可):or 或 ||(比如“http or tcp.port == 8080”); • 非(排除条件):not 或 !(比如“http not tcp.port == 80”); • 等于符号:单等号“=”和双等号“==”均可,规范写法为“==”,本文统一用“==”,避免语法警告; • 字符串需加引号:若过滤条件包含字符串(如域名、请求方法),需加英文双引号(比如“http.host == "www.xxx.com"”),中文引号会报错。
1.3 快速调用技巧(提升效率)
不用每次都复制粘贴,掌握这两个技巧,常用表达式随取随用:
• 保存常用表达式:在显示过滤框右侧,点击“Save”,输入表达式名称和内容,保存后下次点击“History”即可快速调用; • 预设表达式模板:点击过滤框右侧的“Expression”,在弹出的窗口中,可按协议筛选预设条件,选中后自动填充表达式,无需手动输入/复制。
二、通用基础过滤表达式(复制即用,所有场景适配)
这部分是最常用、最基础的过滤表达式,无论什么抓包场景都可能用到,覆盖IP、端口、协议等核心需求,每条均标注用途和注意事项,复制后直接粘贴到显示过滤框即可。
2.1 IP地址相关(最常用)
用于筛选特定IP的流量,比如抓本地IP、手机IP、服务器IP的数据包,新手必记:
2.2 端口相关(高频使用)
用于筛选特定端口的流量,比如HTTP的80端口、HTTPS的443端口、自定义的8080端口,精准定位接口流量:
2.3 协议相关(基础筛选)
用于筛选特定协议的流量,快速屏蔽无关协议,简化抓包结果,新手入门必用:
2.4 捕获过滤常用表达式(补充)
抓包前限制抓包范围,减少无关流量,语法更简洁,仅补充最常用的几条,复制粘贴到捕获过滤面板:
• host 192.168.1.105:仅抓取与192.168.1.105相关的所有流量(对应显示过滤的ip.addr); • src host 192.168.1.105:仅抓取源IP是192.168.1.105的流量(对应显示过滤的ip.src); • dst host 192.168.1.105:仅抓取目的IP是192.168.1.105的流量(对应显示过滤的ip.dst); • port 8080:仅抓取8080端口的所有流量(对应显示过滤的tcp.port == 8080); • tcp port 443:仅抓取443端口的TCP流量(对应显示过滤的tcp.port == 443)。
三、HTTP/HTTPS专项过滤表达式(高频实战,接口调试必备)
做接口调试、Web开发、测试时,最常用的就是HTTP/HTTPS相关过滤,这部分汇总精准筛选请求方法、域名、请求体、响应状态码等表达式,复制即用,解决接口调试的核心需求。
3.1 HTTP请求方法过滤(GET/POST/PUT/DELETE)
筛选特定请求方法的HTTP请求,比如仅看POST提交数据的请求、仅看GET查询数据的请求:
3.2 HTTP域名/接口地址过滤(精准定位)
筛选特定域名、特定接口地址的HTTP请求,避免无关接口干扰,精准定位目标接口:
3.3 HTTP请求头/请求体过滤(排查参数异常)
筛选包含特定请求头、特定请求参数的HTTP请求,排查参数错误、请求头缺失等问题:
3.4 HTTP响应状态码过滤(排查接口异常)
筛选特定响应状态码的HTTP响应,快速排查接口异常(如404、500),高效定位问题:
3.5 HTTPS专用过滤表达式(解密后使用)
HTTPS流量需先进行解密设置(参考上一篇文章的HTTPS解密步骤),解密后可使用以下表达式,与HTTP表达式搭配使用:
• ssl:筛选所有加密的HTTPS流量(未解密时使用); • ssl.handshake:筛选HTTPS握手相关流量(排查握手失败、解密失败问题); • http and ssl:筛选解密后的所有HTTP请求(HTTPS解密后); • http.request.method == "POST" and ssl:筛选解密后的POST请求(HTTPS); • ssl.alert:筛选HTTPS告警流量(排查SSL证书异常、加密协议不兼容问题)。
四、实战场景过滤表达式组合(复制即用,直接套用)
实际工作中,很少用单一表达式,更多是多条件组合,这部分结合4个高频实战场景,汇总可直接复制粘贴的组合表达式,无需手动组合,新手也能快速套用。
4.1 场景1:本地Web接口调试(最常用)
适用场景:本地启动8080端口后端服务,调试localhost下的/api接口,仅看POST请求,筛选正常响应(200):
• 核心组合表达式(复制即用): http and tcp.port == 8080 and http.host == "localhost" and http.request.method == "POST" and http.response.code == 200• 简化版(快速筛选本地接口): http and ip.addr == 127.0.0.1 and tcp.port == 8080• 用途:精准筛选本地8080端口、POST方法、正常响应的接口请求,避免无关流量干扰,快速调试接口参数。
4.2 场景2:手机APP接口抓包(高频)
适用场景:手机与电脑连同一WiFi,抓取手机APP的HTTP/HTTPS请求,仅看APP发送的请求(手机IP为192.168.1.108):
• HTTP请求(未加密): http and ip.src == 192.168.1.108• HTTPS请求(解密后): http and ssl and ip.src == 192.168.1.108• 精准筛选APP某一接口: http and ip.src == 192.168.1.108 and http.request.uri contains "/api/home"• 用途:快速筛选手机APP发送的所有请求,排查APP接口调用异常、参数错误等问题。
4.3 场景3:接口异常排查(运维/测试必备)
适用场景:线上/测试环境接口调用异常,排查超时、响应错误、请求失败等问题:
• 排查所有异常响应接口: http and http.response.code >= 400• 排查接口超时(响应时间>1秒): http and frame.time_delta > 1• 排查特定接口无响应(有请求无响应): http.request and http.host == "www.xxx.com" and not http.response• 排查POST请求参数异常: http.request.method == "POST" and http.request.body contains "error"
4.4 场景4:DNS解析异常排查
适用场景:域名解析失败、解析延迟,排查DNS相关问题:
• 筛选所有DNS流量: dns• 筛选特定域名的DNS解析: dns.qry.name == "www.xxx.com"• 筛选DNS解析失败的流量: dns.rcode != 0(rcode=0代表解析成功)• 筛选DNS查询请求: dns.qry.type == A(A记录,域名解析为IP)
五、过滤表达式使用技巧+常见错误排查(避坑必看)
汇总新手使用过滤表达式时的高频错误和实用技巧,避免复制粘贴后仍无法使用,解决“过滤无结果、语法错误”等问题,实事求是,不回避坑点。
5.1 实用技巧(提升效率,老手必备)
• 快速组合表达式:用“and”“or”组合基础表达式,比如“http and ip.addr == 192.168.1.105 and tcp.port == 8080”,精准筛选目标流量; • 模糊匹配用contains:不确定完整参数时,用contains(包含)替代==(精准匹配),比如“http.request.uri contains "/api"”,无需记住完整接口路径; • 排除无关流量用not:比如“http not http.host == "www.baidu.com"”,筛选所有HTTP请求,排除百度的无关流量; • 保存常用组合:将高频使用的组合表达式(如本地接口调试、手机抓包)保存到过滤历史,下次点击即可调用,无需重复复制; • 批量筛选多端口/多IP:用or连接,比如“tcp.port == 8080 or tcp.port == 8090”“ip.addr == 192.168.1.105 or ip.addr == 192.168.1.108”。
5.2 常见错误排查(新手必看)
错误1:过滤表达式变红(语法错误)
最常见错误,排查方法按优先级排序:
• 检查符号是否为英文:中文的“and”“或”“=”“引号”都会导致语法错误,替换为英文符号即可; • 字符串是否加引号:域名、请求方法、参数等字符串,需加英文双引号,比如“http.host == www.xxx.com”(错误)→“http.host == "www.xxx.com"”(正确); • 表达式是否写对关键词:比如“http.request.method”写错为“http.request.methods”(多了s),核对本文表达式,修正关键词; • 面板是否选错:将显示过滤表达式用到了捕获过滤面板,切换到顶部的显示过滤框即可。
错误2:过滤表达式绿色,但无结果(语法正确,筛不到流量)
排查方法:
• 检查抓包范围:是否抓取到了对应流量(如筛选HTTP请求,但抓包时未刷新网页、未调用接口),重新抓包后再过滤; • 检查参数是否正确:IP地址、端口、域名是否输错(如192.168.1.105输成192.168.0.105),核对实际IP/端口; • HTTPS是否未解密:筛选http表达式,但抓取的是HTTPS流量且未解密,需先完成HTTPS解密设置; • 逻辑运算符是否用错:比如用and连接两个矛盾条件(“ip.src == 192.168.1.105 and ip.src == 192.168.1.108”),替换为or即可。
错误3:混淆src/dst(源/目的)
新手常混淆源和目的,导致过滤结果不符合预期:
• src:源(发送方),比如ip.src == 192.168.1.105,是本地发送给其他设备的流量; • dst:目的(接收方),比如ip.dst == 192.168.1.105,是其他设备发送给本地的流量; • 无src/dst:比如ip.addr == 192.168.1.105,包含源和目的,双向流量。
错误4:TCP/UDP协议混淆
比如用“tcp.port == 53”筛选DNS流量,筛不到结果——DNS用UDP协议,需改为“udp.port == 53”;同理,HTTP/HTTPS用TCP协议,需用tcp.port,别用udp.port。
六、总结(合规导向,拒绝误导)
Wireshark过滤表达式的核心是“精准筛选、简化操作”,本文汇总的所有表达式,均经过实战验证,复制粘贴就能直接使用,无需死记硬背——新手可以先收藏本文,抓包时按需查找、复制;老手可以利用本文的组合技巧,快速编写符合需求的过滤表达式,提升工作效率。
本文全程坚持实事求是,不夸大表达式的功能,不误导用户:过滤表达式只是“筛选工具”,能帮我们快速找到目标流量,但无法自动排查问题,具体的问题定位,还需要结合解析结果和业务场景判断;同时,所有表达式均适配Wireshark 4.0+版本,低版本可能存在语法兼容问题,建议升级到最新版本。
最后再次提醒:抓包行为需遵守合规要求,仅对授权的网络、设备、接口进行抓包,严禁抓取未授权的网络流量(如他人的接口请求、敏感信息),违规操作不仅会侵犯他人隐私,还需承担相应的法律责任。
如果觉得本文对你有帮助,欢迎转发分享给身边的同事、朋友,后续会分享更多Wireshark实战技巧,助力大家快速提升抓包解析效率,少走弯路~
附:快速查找指南(按需求找表达式)
• 找IP/端口相关:第二节(通用基础); • 找HTTP/HTTPS相关:第三节(专项过滤); • 找实战场景组合:第四节(场景组合); • 找错误排查:第五节(常见错误)。