网络诊断 · Wireshark

Wireshark 下载与抓包入门:DNS、TCP、TLS 过滤和故障分析

先了解这款工具

Wireshark 用于捕获和分析网络数据包,适合需要确认 DNS、连接握手或重传现象的用户。它可以提供诊断证据,但不会自动修复网络,也不能凭抓到加密流量直接读出 HTTPS 内容。

官方下载 ↗官方资料代理验证工具
WindowsmacOSLinux

什么时候需要 Wireshark

“网页打不开”可能停在域名解析、TCP 连接或 TLS 握手。Wireshark 可以把这些阶段放在时间线上,帮助判断请求有没有发出、有没有收到回复,以及错误发生在哪一段。

它适合已经能复现问题、需要进一步证据的用户。若只想看 DNS 回答,用 doggo 更直接;若想观察逐跳路径,用 NextTrace。抓包分析应围绕一个明确问题展开,避免把满屏数据当成结论。

官方下载、平台与抓包权限

从 Wireshark 官方下载页选择 Windows 或 macOS 安装包;Linux 可使用发行版的软件包,并核对实际版本。GitHub 仓库是官方镜像,不应把其 Release 数量当作官方下载总量。

  • Windows 实时抓包依赖 Npcap,按安装向导检查是否安装;驱动限制可能要求管理员确认。
  • macOS 按官方安装说明完成捕获权限设置,不能仅复制应用后就认为具备抓包权限。
  • Linux 使用发行版提供的捕获权限配置,让捕获组件获得必要权限;不要习惯性把整个图形界面以 root 运行。

可以打开现成抓包文件与可以实时抓包是不同能力。看不到接口或启动捕获被拒绝时,先读 官方捕获权限说明,而不是先修改代理配置。

完成一次范围明确的抓包

  1. 关闭不相关应用,在自己的设备与获准网络上操作。明确要复现的一个请求,例如访问 https://example.com。
  2. 在欢迎页选择正在使用的以太网或 Wi-Fi 接口,可先观察接口流量曲线。多个接口同时有流量时,结合系统网络设置确认。
  3. 开始捕获后立即复现一次请求,等待出现问题或完成响应,再按停止按钮。不要长时间记录无关流量。
  4. 保留开始时间、应用、目标域名和是否启用代理,方便对应具体数据包。

使用本机代理时,应用到代理的连接通常发生在回环接口,代理到外部的连接出现在实际出口接口。只抓其中一个接口可能看不到另一段。选择回环接口能否成功,还取决于系统与捕获组件支持。

也可以在另一个终端执行下面的单次请求来复现;Windows PowerShell 使用 curl.exe。它会遵循当前代理环境,记录是否启用代理:

curl --http1.1 --head --max-time 20 https://example.com

强制 HTTP/1.1 便于入门时观察 TCP/TLS;请求成功与否以实际响应为准。抓包完成后对照同一时间段的连接,避免把后台应用的数据误认为这次请求。

抓包过滤器与显示过滤器要分开

Wireshark 两种过滤器的用途
种类输入位置与效果示例
抓包过滤器捕获开始前设置,决定哪些包进入文件;使用 libpcap 语法。port 53 or tcp port 443
显示过滤器捕获期间或结束后在工具栏输入,决定哪些已抓到的包显示;隐藏的包仍在原文件中。dns or tcp.port == 443

入门时可先短时不加抓包过滤器,避免提前丢掉关键证据。需要减少采集范围时再使用抓包过滤器。上面的抓包示例不包含 UDP 443,因此不会完整覆盖 QUIC/HTTP3;不要据此断言浏览器没有发起网络请求。

两种语法不能交换使用。显示过滤器输入后按 Enter 应用;无匹配结果时清空过滤器检查总包数。显示过滤成功也不表示原文件已经删去其他数据。

先检查 DNS 查询与回复

在显示过滤栏输入 dns,查看查询名称、记录类型、回复状态和时间。要只看示例域名可使用:

dns.qry.name == "example.com"

把查询与对应回复配对,检查是否存在响应、是否返回记录,以及是否出现 NXDOMAIN 等状态。没有看到 DNS 不一定是故障:系统可能有缓存,浏览器也可能使用 DoH,或你抓错了接口。

普通 DNS 数据包常能直接看到域名;加密 DNS 的具体查询内容通常不能用 dns 直接显示。先用同一解析器的 DNS 查询对照缩小问题范围,再回到抓包确认。

观察 TCP 建连、重传与 TLS 握手

显示过滤器 tcp.flags.syn == 1 可帮助定位 TCP 建连包;tcp.analysis.retransmission 查看 Wireshark 标记的疑似重传。右键选定连接并按 TCP Stream 过滤,可减少其他连接干扰。

重复 SYN 而没有对应回复,是连接阶段异常的线索;疑似重传也可能受到采集缺包、镜像接口或抓包位置影响。需要结合完整会话和实际应用错误判断,不能把一个彩色提示直接等同于链路丢包。

tls
tls.handshake.type == 1

tls 聚焦被识别为 TLS 的流量,第二条聚焦 Client Hello。能够看到握手不代表能够看到加密后的 HTTP 内容;TLS 版本与握手阶段也会影响可见字段。若客户端走 QUIC,应另看 quic,而非只盯 TCP。

保存、导出与分享前脱敏

保存时优先保留原始抓包供自己分析,再另外创建准备分享的材料。PCAP/PCAPNG 可能包含内网地址、DNS 名称、明文请求、Cookie、设备标识和用户路径。TLS 密钥日志也属于敏感材料,不能随抓包随意公开。

  1. 先检查包详情及 Follow Stream 是否出现账户、令牌、请求正文或其他个人数据。
  2. 只需反馈现象时,优先分享遮盖敏感字段的截图和少量错误说明。
  3. 确需分享文件时,使用“Export Specified Packets”选择必要包,确认导出范围;显示过滤器本身不会修改原文件。
  4. 导出包仍可能包含敏感负载,必须再次检查;无法确认时重新生成不含登录行为的最小抓包。

抓包是证据采集工具。把时间、接口、过滤器和观察到的现象一起记录,比直接给一份巨大文件更利于他人复核。

更新前记录当前版本、捕获接口、权限设置和常用过滤器,并保存带诊断时间的最小抓包文件供对照。通过 Wireshark 官方下载页或原发行版软件包渠道升级。升级后用同一接口重新捕获一次 https://example.com 请求,确认能看到预期流量、过滤器能应用,并能保存与重新打开抓包文件。

常见问题

为什么抓包列表是空的?

先清空显示过滤器,确认捕获确实开始,再检查选中的接口与捕获权限。若抓包过滤器太窄,相关包可能根本没有写入文件。

使用显示过滤器后,其他数据已经从文件删除了吗?

没有。显示过滤器只改变界面可见范围,原捕获文件仍保留其他包。导出指定包可以减少范围,但仍需单独检查敏感内容。

Wireshark 能直接解密所有 HTTPS 吗?

不能。一般只能看到部分连接与握手信息。解密需要相应会话密钥等条件,且应限于自己的授权调试环境;仅安装软件不会获得这些密钥。

重传提示能证明运营商丢包吗?

不能单独证明。提示是基于捕获视角的分析,抓包缺失或接口重复采集也可能影响判断,应结合会话、终点表现与重复测量。

开启代理后应该抓哪个接口?

应用连接本机代理的部分通常在回环接口,代理连接外部的部分在出口接口。依据要验证哪一段选择接口,并确认系统的回环捕获支持。

官方来源与核对

本文依据以下官方项目与文档整理,资料核对日期为 2026.10.02。安装包、界面和配置字段会随版本变化,可通过原始资料确认当前要求。

doggo →DNS 查询与解析对照NextTrace →路由追踪与路径诊断Xray-core →多协议代理命令行核心

先弄清这些概念

返回工具目录 · 按症状排查问题