为什么是 Wireshark
主要是wireshark应用太广泛了,而且支持全平台,基本大部分抓包工具都是基于wireshark,学会wireshark就足够了。
Wireshark 是最常用的开源网络协议分析工具,官方有签名的 Windows 安装包,支持桌面 GUI 和命令行工具(tshark)。如果你只是想打开别人给你的 pcap 文件或本地抓包排查问题,Wireshark 就能满足大部分需求。下载与官方资料都在 Wireshark 官网。(Wireshark)
一、下载安装
-
访问官网下载页,官网会自动给出适合你系统的安装器(通常是 Windows x64 / Arm64)。选择 Windows x64 Installer 下载即可。(Wireshark)
-
双击运行安装程序(需要管理员权限)。安装程序内置/会提示安装 Npcap (WinPcap 的现代替代实现),如果你要做实时抓包必须安装 Npcap,否则只能打开已有的 pcap 文件。默认安装器会带上 Npcap,你可以直接勾选安装。(Wireshark)
安装界面中 Npcap 通常会有几个选项(常见选择):
-
Restrict Npcap to Administrators only(是否仅管理员可访问)
-
Support raw 802.11 traffic (and monitor mode)(是否启用无线原始监控模式,只有支持的网卡才有用)
-
WinPcap API-compatible mode (兼容旧程序)
如果你只是桌面抓有线或普通无线流量,默认选项就可以;需要做 Wi-Fi 监听或让老程序兼容时按需打开。(npcap.com)

注意:如果系统已有旧版 WinPcap,建议卸载它再装 Npcap;大多数现代 Windows(10/11)都推荐用 Npcap。(npcap.com)
二、第一次运行与界面快速熟悉
启动 Wireshark,会看到顶部的网络接口列表(每个网络适配器对应一行,右侧显示实时流量速率)。双击某个接口就开始抓包。界面主要由三部分组成:包列表(上),协议解析(中),十六进制/原始字节(下)。

常用操作(GUI):
-
选择接口 → 双击开始抓包
-
输入 显示过滤器(Display Filter) 在顶部过滤已捕获包,例如
ip.addr == 192.168.1.5
或tcp.port == 80
-
右键包 → Follow → TCP Stream(查看完整会话)
-
File → Save As
保存为.pcapng
或.pcap
文件以便分享/离线分析
显示过滤器与捕获过滤器不同:显示过滤器用于筛选已捕获的数据,语法更强大(例如 http.request
、tcp.flags.syn == 1
),捕获过滤器是在开始抓包前设置(BPF 语法,如 port 80 and host 1.2.3.4
),捕获时能节省磁盘与 CPU。关于过滤器语法,Wireshark 文档与教程很多,这里后面给几个典型例子。(Wireshark)
三、实用过滤器与排查套路(例子)
下面给几个我自己常用的过滤器(显示过滤器):
# 仅显示和某个主机有关的流量
ip.addr == 192.168.1.100
# 显示 HTTP 请求(高层协议)
http.request
# 显示目标或源端口为 443 的所有流量(HTTPS)
tcp.port == 443
# 找到 SYN 包(用于排查 TCP 握手问题)
tcp.flags.syn == 1 && tcp.flags.ack == 0
# 找出丢包或重传(常用于网络质量问题)
tcp.analysis.retransmission
如果你想在抓包阶段就过滤(捕获过滤器,BPF 语法),在开始抓包前设置,比如只抓目标主机 192.168.1.5 的流量:
host 192.168.1.5
显示过滤器在输入框输入后会变色提示语法是否正确(绿色表示合法)。
四、几个进阶但常用的技巧(GUI + 命令行)
跟踪会话(Follow Stream)
选中一个 TCP/HTTP 包 → 右键 → Follow
→ TCP Stream
,这样可以把应用层的对话还原成可读文本(对抓取 HTTP、SIP、WebSocket 等非常有用)。
利用颜色规则快速定位
View → Coloring Rules...
可以配置颜色化规则,比如把所有 HTTP 请求标成绿色,把错误或重传标成红色,这在大量包中定位问题非常高效。
命令行 tshark(无 GUI 时好用)
Wireshark 安装包自带 tshark
(命令行版),在自动化或远程环境非常好用。几个常用命令:
# 列出可用接口
tshark -D
# 在接口 1 上抓 100 个包并写入文件
tshark -i 1 -c 100 -w capture.pcap
# 只抓取 TCP 端口 80 的包并写到文件(capture filter)
tshark -i 1 -f "tcp port 80" -w http_only.pcap
# 直接以文本输出并用显示过滤器筛选
tshark -r capture.pcap -Y "http.request" -V
tshark -D
会列出接口编号,-i
后可跟编号或接口名字。命令行在做 CI 流水线、自动化抓包或服务器上调试时极其好用。
五、常见问题与坑
-
抓不到包 / 没有接口 :通常是因为 Npcap 没装或没有给予权限(管理员)。确认安装时勾选了 Npcap 并重启机器后再试。(Wireshark)
-
看到了加密流量(HTTPS)但不能直接看到明文:HTTPS 加密后你无法直接查看应用层明文(除非用服务端私钥或在客户端启用 TLS keylog)。
-
无线监控模式不可用 :不是所有无线网卡都支持原始 802.11 抓包(monitor mode),即使 Npcap 启用了该选项也需硬件支持。(npcap.com)
-
文件太大磁盘压力大 :抓包时尽量使用捕获过滤器或分段保存(File → Ring buffer 或使用 tshark 的
-b
选项分割文件)。
六、合规与安全提醒
网络抓包可能会收集敏感信息(明文密码、会话 cookie、语音/视频包等)。在工作环境抓包前请务必:
-
得到网络/系统所有者和相关方明确同意。
-
在公司场景下遵守安全与合规流程,把抓到的 pcap 文件当作敏感数据处理(加密存储、限制访问)。
-
不要在未经授权的网络(如公司以外的 Wi-Fi)截取其它用户流量。
这点我做视频通话/VoIP 排查时尤其注意。
七、常用的抓包排查流程
-
先在本地或受控环境复现问题(尽量复现复现复现)。
-
开启抓包(选择合适接口),使用捕获过滤器尽量减少噪音。
-
保存一份原始 pcap 备份(不做修改),另存一份用于标注/分析。
-
从三层(网络连通)→ 四层(TCP/UDP 连接、重传)→ 七层(应用协议)逐层排查。
-
使用
Follow TCP Stream
、Statistics → Conversations
、IO Graphs
等功能快速定位异常。
八、扩展资源(官方文档与学习材料)
-
官方下载与 Windows 安装:Wireshark 官网下载页。(Wireshark)
-
Windows 安装与 Npcap 说明(Wireshark 文档):安装器包含 Npcap,若不安装则不能抓实时流量。(Wireshark)
-
Npcap 官方:Npcap 是 WinPcap 在现代 Windows 上的替代实现,并提供一些选项(monitor mode、兼容模式等)。(npcap.com)
Wireshark 是网络调试、性能分析、协议学习的利器。刚开始可能会被各种协议字段吓到,但练习几次抓包---尤其按我上面那套分层排查流程---很快就能从"不会看"变成"能定位"。