wireshark 过滤 http 数据包新手教程
@ ( 开房记录、手机定位 )@
@ ( 外卖地址、聊天记录 )@
在网络协议分析中,Wireshark 是无可替代的“神器”。然而,对于刚接触这款工具的新手来说,面对瞬间涌入的成千上万条数据包,往往会感到无从下手。掌握过滤器(Filter)的使用,是从“看热闹”到“看门道”的关键一步。本教程将带你快速掌握在 Wireshark 中精准过滤 HTTP 数据包的核心技巧。

一、 抓包前的“捕获过滤器”:从源头减负
在进行网络分析时,我们通常不需要抓取设备上的所有流量。在点击“开始抓包”之前,可以通过设置捕获过滤器(Capture Filter)来从源头减少数据量,降低系统资源消耗。
捕获过滤器基于 BPF 语法。如果你只想抓取 HTTP 流量,可以在“Capture Filter”输入框中输入:
tcp port 80
如果还需要同时抓取 HTTPS 流量,可以使用逻辑组合:
tcp port 80 or tcp port 443
如果只想抓取特定目标主机的 HTTP 请求,可以输入:
host 192.168.1.100 and port 80
二、 抓包后的“显示过滤器”:精准定位目标
显示过滤器(Display Filter)是 Wireshark 最强大的功能之一。它允许你在抓取完成后,对已捕获的数据进行灵活筛选。直接在顶部的过滤栏中输入以下表达式即可:
1. 基础协议过滤:输入 http,界面将仅展示所有明文 HTTP 协议的数据包,屏蔽掉底层的 TCP、IP 等无关干扰。
2. 按请求方法过滤:在排查接口或表单提交时,可以精准筛选特定的请求方式。例如,只看 POST 请求输入 http.request.method == "POST";只看 GET 请求输入 http.request.method == "GET"。
3. 按响应状态码过滤:当需要排查网页报错或接口异常时,可以过滤出非正常的响应。例如,过滤 404 错误输入 http.response.code == 404;过滤所有客户端与服务端错误输入 http.response.code >= 400。
4. 按 URI 或内容过滤:若需查找包含特定关键字的请求,可使用 contains 语法。例如,筛选 URL 中包含登录接口的请求输入 http.request.uri contains "login";筛选包含密码字段的请求输入 http contains "password"。
三、 进阶分析技巧:追踪完整会话
在过滤出目标 HTTP 数据包后,由于网络传输的特性,一个完整的 HTTP 请求或响应可能会被拆分成多个 TCP 数据包。此时,查看单个数据包往往只能看到零碎的信息。
新手必须掌握的核心操作是:在目标数据包上点击鼠标右键,选择“Follow”(追踪) -> “TCP Stream”(TCP 流)或“HTTP Stream”(HTTP 流)。Wireshark 会自动将属于该会话的所有数据包进行重组,并以纯文本的形式展示完整的 HTTP 请求头、请求体以及服务器的响应内容。这对于调试 API 接口、分析 Web 应用逻辑具有极大的帮助。
四、 新手避坑指南与注意事项
1. HTTPS 的加密限制:如今绝大多数网站已升级为 HTTPS。Wireshark 无法直接过滤或查看 HTTPS 的明文内容。如果在过滤栏输入 http 却没有任何结果,请检查目标网站是否使用了 HTTPS。若需分析 HTTPS,需配置 SSLKEYLOGFILE 环境变量或使用 Fiddler 等代理工具。
2. 语法大小写敏感:Wireshark 的显示过滤器对大小写严格区分。协议名称和字段名必须使用小写(如 http.request.method),而字符串匹配的值必须使用英文双引号包裹(如 "POST")。
3. 实时语法提示:在输入过滤表达式时,如果输入框背景变为绿色,代表语法正确;若变为红色,则说明存在语法错误。此外,新手可以直接在数据包详情区选中某个字段,右键选择“Apply as Filter”(作为过滤器应用),Wireshark 会自动为你生成正确的过滤表达式。
@ ( 开房记录、手机定位 )@
@ ( 外卖地址、聊天记录 )@
