在 Wireshark 中,“过滤域名”通常指根据DNS 查询名称、HTTP Host 头或TLS SNI 等字段进行显示过滤器(Display Filter)设置,从而只显示与特定域名相关的数据包。

以下是具体的专业过滤方法:
1. 按 DNS 查询名称精确过滤
在 Wireshark 的显示过滤器栏输入:dns.qry.name == "example.com"
这会过滤出 DNS 查询请求中目标域名为 example.com 的数据包。注意:域名必须带双引号,且大小写敏感。
2. 按 DNS 响应名称过滤
输入:dns.resp.name == "example.com"
用于过滤 DNS 响应中包含该域名的数据包。
3. 按 HTTP Host 头过滤
对于 HTTP 流量,输入:http.host == "example.com"
这会匹配 HTTP 请求中 Host 字段为 example.com 的报文,适用于网站访问分析。
4. 按 TLS SNI(服务器名称指示)过滤
对于 HTTPS 加密流量,输入:tls.handshake.extensions_server_name == "example.com"
这会在 TLS ClientHello 握手包中匹配 SNI 扩展中的域名,从而识别加密连接的目标域名。
5. 模糊匹配与包含过滤
若需匹配包含某关键字的域名,可使用 contains 运算符,例如:dns.qry.name contains "example"
或使用正则表达式:dns.qry.name matches ".*example\\.com$"
6. 组合过滤(例如特定域名且非特定 IP)
例如:dns.qry.name == "example.com" && !(ip.addr == 192.168.1.1)
表示只显示 example.com 的 DNS 查询且排除源/目的 IP 为 192.168.1.1 的包。
7. 快速技巧:右键快捷过滤
在数据包详情窗格中展开 DNS 或 HTTP 协议层,找到对应的域名字段(如 Name 或 Host),右键点击该字段,选择 Apply as Filter → Selected,Wireshark 会自动生成对应的显示过滤器表达式。
注意事项:
· 显示过滤器不影响抓包过程,只控制数据包列表的显示。若需在抓包阶段就过滤,应使用捕获过滤器(Capture Filter),但捕获过滤器无法直接按域名过滤(需依赖端口或主机 IP)。
· 域名过滤对加密流量(如 HTTPS)主要通过 TLS SNI 实现,但前提是客户端支持 SNI 扩展(现代浏览器均支持)。
· 若需更深入分析,可结合 dns.count、http.response 等字段构建复合过滤条件。
以上即为 Wireshark 中过滤域名的核心方法,覆盖 DNS、HTTP、HTTPS 三类常见场景,可满足绝大多数网络分析需求。

查看详情

查看详情