
聊抓包工具很多人上来就问“哪款最强”其实问错方向了。不同形态的流量用的工具完全不是一回事看底层协议报文绕不开 Wireshark调 HTTP/HTTPS 接口Fiddler、mitmproxy、Burp Suite 才是干这活的到了小程序、手机 App 这些场景真正难的也不是工具本身而是证书处理。今天这篇“全平台抓包工具大全”我把免费能到手、跨平台能用的方案从头到尾理一遍包括每个工具适合干什么、怎么装怎么用、哪些坑我替你先踩过方便你少走弯路。1. 先分清你抓的是哪一层“包”抓包工具的选择逻辑取决于你实际要处理的数据形态。我见过太多人用 Wireshark 去抓小程序接口抓到一堆 TLS 密文后一头雾水也有人拿 Fiddler 去找 TCP 重传问题结果连 HTTP 流量都看不到。抓包前先分层后面才不会白忙。1.1 网络层抓包看的是网卡上的原始报文这一类工具的典型代表是 Wireshark 和 tcpdump。它们直接挂着网卡在数据链路层做捕获能看到 TCP、UDP、ICMP、DNS、TLS 握手这些完整报文内容。因为抓的是“网线上跑的东西”所以理论上任何通信都能被捕获包括你根本不知道源和目的之间用了什么协议的流量。但问题也出在这里现在的互联网流量绝大多数是 HTTPS网络层抓包拿到的是加密后的密文没有密钥的情况下基本没法还原 HTTP 内容。换个更直白的说法——Wireshark 能告诉你“客户端和服务器在几点几分建立了连接、数据包多大、用了什么加密套件”但看不到里面具体传输的 JSON 长什么样。它适合什么场景呢网络排障、定位丢包和延迟、分析 TCP 握手、看 DNS 解析、排查 IP 冲突这些都属于 Wireshark 的强项。很多运维同事排查“网页打不开、网络总断”的时候用 Wireshark 同时跑服务的节点和客户端节点一眼就能看出是三次握手失败还是某个端口被 RST。1.2 应用层抓包面向 HTTP/HTTPS 的调试代理另一大类抓包工具在中文社区里更常被直接称为“抓包工具”它们本质上不是抓包而是把设备变成 HTTP/HTTPS 代理让流量从自己这里“中转”一下。Fiddler、mitmproxy、Burp Suite、Charles、HttpCanary 都属于这一类。这类工具相比 Wireshark 的优势很明确它们可以直接解密 HTTPS 流量。原理说起来不复杂代理工具会向操作系统或设备里植入一张根证书然后对每个 TLS 连接使用中间人方式重新加密你看到的就不再是密文而是明文请求头、POST 参数、Cookie、响应体等等。这也就是为什么“小程序抓包”“网课视频抓包”这些需求选的大多是这些应用层代理工具而不是 Wireshark。坑点也在这里只要设备不信任代理的根证书HTTPS 流量就是抓不了的如果 App 本身做了证书校验SSL Pinning那即使装了证书也不一定解不开。1.3 “全平台”到底指什么范围我理解的“全平台抓包工具”至少得覆盖以下几种场景桌面端Windows、macOS、Linux 上都能安装运行。抓取目标是手机能通过代理或远程抓包的方式接收到 Android、iOS 设备的流量。跨设备联动PC 端能分析手机上导出的抓包文件。严格符合这三个条件的免费工具其实不多。Wireshark 算一个mitmproxy 算一个Burp Suite Community 也算Proxyman 有免费版但 macOS 生态更重。更多工具是“桌面跨平台”和“移动端可用”分开的Fiddler Classic 偏 WindowsHttpCanary 只在 Android。所以选工具之前先给“全平台”下个定义比盲选重要得多。2. Wireshark 生态全平台免费抓包的起点Wireshark 几乎可以称得上抓包圈的“原生物种”。它免费、开源、跨平台Windows/macOS/Linux 都有官方安装包只要你能拿到流量包它就能给你解析出一份结构清晰的协议树。无论是校园网里排查 DHCP 报错还是生产环境里定位一个偶发的 RST 包它都是最值得先装好的工具。2.1 安装和首次抓包五分钟跑通的配置细节在 Windows 上安装 Wireshark 时安装向导会让你装一个 Npcap 驱动这个一定要装。Npcap 是 Windows 下真正负责“抓包”的内核驱动Wireshark 只是上层解析工具不装驱动就选不到网卡。macOS 和 Linux 下一般系统自带 libpcap 能力安装包也会自己处理依赖不用额外操作。下载装好之后第一次打开界面会列出本机所有可用接口Wi-Fi、有线网卡、虚拟网卡、蓝牙接口等都在。容易踩的坑是“选错接口”——比如你在用无线网络却选中了以太网卡抓半天一根毛都没有。建议先做两步验证看接口右侧的实时流量曲线有波形才说明数据在走这条网卡。双击接口开始抓包后在过滤栏输入tcp看看有没有 TCP 报文出现。如果你需要按条件过滤捕获内容比如只抓某个 IP 的包在捕获选项里写“捕获过滤器”而不是“显示过滤器”。捕获过滤器的语法比较老常见写法是host 192.168.1.100 tcp port 443 not arp捕获过滤器的作用是帮你在抓包阶段就省掉不相关的流量特别适合流量大、磁盘空间有限的场景。2.2 过滤器、追踪流和“抓得到却看不懂”的破局套路很多人从 Wireshark 开始第一个感受是“报文太多了看不懂”。这是正常的正常网络里每秒几千个包很常见要靠显示过滤器把范围缩小。显示过滤器是 Wireshark 的核心能力类型 IPv4、HTTP、DNS、TCP 状态等都能做字段级过滤而且输入的时候有自动补全比记忆语法友好得多。几个我日常用得最多的显示过滤器供你直接复制目标显示过滤器看某个域名的 HTTP 请求http.request http.host example.com看某个 IP 的全部流量ip.addr 192.168.1.100看 TCP 重传和异常tcp.analysis.retransmission看 TLS 握手详情tls.handshake.type 1过滤掉健康检查噪音tcp.port ! 8080过滤器写完仍然可能觉得乱那就用“右键 → 追踪流 → TCP 流”。Wireshark 会把一次完整的 TCP 连接内容拼成一条可读的会话左侧请求右侧响应还能直接切成原始数据或 Hex 显示。排查接口调试类问题时这个功能比在大量报文里找关键字高效得多。再说一个进阶用法如果你要长期抓包做分析Wireshark 的 GUI 界面其实很消耗内存。可以用命令行工具tsharkWireshark 自带来批量处理 pcap 文件tshark -r capture.pcap -Y http.request -T json http_requests.json抓包和分析分离是处理大流量时最稳的做法。2.3 用 Wireshark 抓 Android 真机流量USB 与无线两种姿势“USB 抓包工具哪个最好用”这类问题热点词热度很高但在 Wireshark 语境下意思是“用 USB 连接 Android 真机后怎么把流量导到 PC 上抓”。实际有两条路线我都跑通过。第一条是 USB 网桥。把手机开启“USB 网络共享”PC 上会多出一个 RNDIS 虚拟网卡手机流量会经由这个虚拟网卡转发。Wireshark 里选中 RNDIS 网卡直接抓即可。这个方案的好处是不用 root、不用安装证书缺点是你抓的依然是加密流量。第二条更通用用adb在 Android 上执行 tcpdump把结果保存为 pcap 再导出分析。前提是设备有 root 权限或者用的是可 root 的测试机、Google API 镜像模拟器。命令大致是这样的adb root adb shell tcpdump -i any -s 0 -w /sdcard/capture.pcap adb pull /sdcard/capture.pcap结束后用 Wireshark 打开这个 capture.pcap 文件底层报文和流量统计就全部可见了。很多做车机、IoT 和通信模组的工程师用的就是这套方法分析设备协议是否符合预期。还有一条无线姿势值得说说是 PC 开热点手机连这个热点Wireshark 抓热点的虚拟网卡。不过现在多数 Wi-Fi 都加密热点模式下报文是走了 AP 隔离还是旁路捕获取决于网卡能力,成功率不定。真机测试我一般优先 USB 方案稳定而且不容易掉线。3. HTTP/HTTPS 抓包三剑客Fiddler、mitmproxy、Burp Suite Community 怎么选解决 Web 层面的调试工具就不是 Wireshark 而是“HTTP 代理三剑客”了Fiddler 适合快速可视化调试mitmproxy 适合脚本和自动化Burp Suite 适合安全方向。三者均为免费可用但在平台支持和商业模式上有各自的边界。3.1 FiddlerWindows 阵营老牌选手与跨平台免费版Fiddler 是很多国内开发入坑抓包的第一款工具。经典版 Fiddler Classic 这么多年一直免费但只支持 Windows如果你在 macOS 或 Linux 上工作就需要用 Fiddler Everywhere。Everywhere 走的是商业授权路线免费层存在但限制偏多比如某些自动化和团队协作功能需要订阅。以官网最新授权策略为准别我从别人的旧文章里抄过来直接信。在 Windows 下首次使用 Fiddler 需要做的关键一步是开启 HTTPS 解密菜单路径为 Tools → Options → HTTPS勾上“Capture HTTPS CONNECTs”和“Decrypt HTTPS traffic”并允许安装根证书。Fiddler 的几个高频功能非常有用左侧会话列表右键 → Save → as HAR 文件可导入很多性能分析工具。AutoResponder 可以配置本地替代响应让请求命中某个 URL 时直接返回预设文件。Composer 支持直接改请求再重发适合接口联调。FiddlerScript 能写脚本自定义规则比如自动修改访问响应头。实操里最容易忽略的坑是 Fiddler 默认只抓代理流量也就是浏览器和 App 设置了代理后才进入它某些桌面应用不走系统代理就会消失在列表里。这时候要么在客户端工具里显式配置代理要么用 Fiddler 的“WinConfig”按钮把系统代理打开。3.2 mitmproxy命令行、Python 脚本与自动化抓包一手抓mitmproxy 是我个人最偏爱的“全平台”抓包工具。它基于 Python跑在 Windows/macOS/Linux 上分为三种形态mitmproxy终端交互界面、mitmdump无界面命令行、mitmweb网页图形界面。安装只需要pip install mitmproxy或者去官网下载对应平台的安装包。终端交互界面看起来有点复古但能力相当硬核。支持键盘快捷键快速查看请求状态码、请求头、响应体也可以输入过滤表达式比如~u api.example.com ~m POST ~s 500如果你会 Pythonmitmproxy 最大的价值就是给你一条“把流量拉出来变成数据”的通道。用一个 addon 脚本几行代码就能实时把请求打印到控制台def request(flow): print(flow.request.pretty_url) print(flow.request.get_text())更复杂的场景比如把特定接口的响应保存成 JSON 文件、按 Host 分目录归档、在流量里批量改参数都可以写成一个脚本挂上去。这个特性在接口自动化回归和爬虫调试里非常好使。首次启动 mitmproxy 后它会默认监听 8080 端口并把根证书的下载地址打在界面里。手机设备连同一个网段、设置代理为“电脑IP:8080”然后打开浏览器访问http://mitm.it就能看到各平台的证书下载按钮。iOS 下除了安装证书还要去“设置 → 通用 → 关于本机 → 证书信任设置”里完整开启信任Android 不同版本位置略有不同但核心思路是一样的。3.3 Burp Suite Community偏向安全测试的抓包工具Burp Suite 是 Web 安全圈的标准作业工具和普通调试抓包工具不是一个路子。它的 Community Edition 是免费的跨平台支持 Windows/macOS/Linux适合做授权范围内的 Web 接口安全测试、请求篡改、爆破演练等。它的免费版和付费版差距很大Community 版本的运行速度较慢很多扫描功能被禁用但它最核心的 Proxy、Repeater、Decoder 依然可用。用 Burp 抓包默认也是走代理模式在浏览器或者移动设备里配置代理端口 8080 即可。Proxy → Intercept 开关打开后请求会被拦在中间允许你上下翻看、修改参数后再放行。这个过程对“测试接口参数校验”来说极其方便。一个容易让新手迷惑的地方是Burp 的拦截默认只拦浏览器流量实际上它对所有通过代理的流量都会拦截。如果手机上也配置了 Burp 的代理手机上的 App 请求同样会在 Intercept 面板里出现。做移动端安全验证时这个能力很有用。3.4 为什么“小程序抓包”总是绕不开这几个工具搜索热词里“微信小程序抓包工具”常年占据高位。很多人以为小程序有特殊的协议其实小程序跑的依然是 HTTPS 请求区别在于小程序走的是微信 App 内的网络栈发起的位置和普通浏览器不一样。微信客户端可能使用了证书校验或代理感知逻辑导致普通代理直接失效。模拟器和真机的证书信任机制不同需要额外配置。实操中的标准路径是在 Android 模拟器里装微信 → 给模拟器设置代理 → 确定抓包工具Fiddler 或 mitmproxy能解 HTTPS → 安装并信任根证书 → 再打开小程序。如果这一步抓不到包优先排查顺序是“代理是否生效 → 证书是否被信任 → 微信版本是否有校验 → 模拟器是否复现了证书存储”。这类问题的定位链路我放到后面第 5 节细说。4. 特殊场景怎么抓模拟器、USB、蓝牙、网课视频“抓包工具大全”如果只聊工具不聊场景价值会大打折扣。尤其搜索热词里出现了大量具体场景词比如“windows mumu 抓包工具”“usb抓包工具”“蓝牙抓包工具”“网课视频抓包工具”这些场景各自有专门打法。4.1 Windows 下 MuMu 模拟器抓微信小程序的实操路径MuMu 模拟器在 Windows 上安装后最稳的抓法是用 Fiddler 或者 mitmproxy 配合手动代理。我以 mitmproxy 为例步骤基本是电脑启动mitmweb监听 8080 端口。在 MuMu 模拟器的网络设置里开启“手动代理”IP 填 Windows 宿主机 IP通常是10.0.2.2或局域网 IP取决于模拟器网络模式端口填 8080。打开模拟器浏览器访问http://mitm.it下载对应版本的证书。安卓设置里找到“安装证书”入口手动安装刚下载的 CA 证书。打开微信小程序流量就会出现在 mitmweb 界面里。一个容易被忽略的细节是模拟器内部网络的 IP 地址。MuMu 这类模拟器宿主机地址往往不是127.0.0.1要填局域网 IP 或特定虚拟网关填错了代理就是上不去。判断代理有没有生效最简单的方法是先在模拟器浏览器里随便访问一个网站如果打不开或者证书报错说明代理路径已经通了只是证书问题如果完全没网络多半是代理地址写错。另外提醒一下模拟器装微信时需要登录环境最好用专门的测试号而不是日常账号避免抓包过程带到个人数据里。4.2 USB 抓包工具哪个好真机调试与 PCAP 抓取的实际答案“usb抓包工具哪个最好用”这个热搜词在不同人群里含义完全不同。普通消费者的意思是“用 USB 线连接手机后怎么抓手机的包”搞开发的人可能想知道的是“能否用 USB 抓底层串口或蓝牙日志”。我先把最常见的两种场景说清楚。第一种真机网络抓包。如果目标是看到手机发出的 HTTP/HTTPS 明文内容那么“USB 抓包”的准确说法是“通过 USB 调试通道把流量转发到电脑上的代理”。用adb reverse命令可以实现adb reverse tcp:8080 tcp:8080这个命令把手机的 8080 端口转发到电脑的 8080 端口手机 App 的请求只要代理指向127.0.0.1:8080就能走到电脑本地的抓包工具。这种方式既不需要手机和电脑在同一 Wi-Fi也不受路由器限制速度比 Wi-Fi 代理稳定非常多。第二种只抓底层报文不关心应用层。如果 Android 手机有 root 权限可以直接用 adb 执行 tcpdump把抓包文件 pull 到电脑里用 Wireshark 打开前面 2.3 小节已经写过。这个方案能拿到 TCP/IP 层数据适合分析连接问题但如果你要的是明文 HTTP 内容还是得走代理方式。4.3 蓝牙抓包免费方案能做到哪一步蓝牙抓包是个进阶话题。搜索热词里也有“蓝牙抓包工具”很多做硬件、外设、智能家居开发的人都在找。市面上常用的商业工具像 Ellisys、Frontline 可以做到复杂环境下的空中抓包但价格不便宜。免费方案能做到什么程度如果你的设备是 Android 系统最简单的是利用系统自带的蓝牙 HCI 抓包日志。在开发者选项里找到“开启蓝牙数据包日志”具体名称不同系统略有差异打开后系统会把蓝牙 HCI 日志保存为 btsnoop 文件路径一般在/sdcard/btsnoop_hci.log或/sdcard/Android/data/下。把文件导到电脑用 Wireshark 打开Wireshark 自带 btsnoop 解析能力能还原出很多蓝牙协议层的交互。Linux 下还可以用btmon命令直接采集蓝牙 HCI 日志sudo btmon -w /tmp/btsnoop.bt然后同样用 Wireshark 打开。免费蓝牙抓包的边界在于你只能抓到本机 HCI 层面的数据无法像商业工具那样空口捕获一对耳机和手机之间的完整无线包。做入门级协议分析、看连接断开原因、查 AT 指令交互这些免费方案是够用的想进一步分析空中包时序就只能上专业设备了。4.4 网课视频抓包怎么识别视频地址不吃亏“网课视频抓包工具”也是高频词。先说清楚合规边界抓包只用于你已有观看权限的内容比如你购买过的课程、公开讲座等目的是为了本地整理、倍速学习或离线查阅。不要用它去绕过版权保护、提取付费内容加密密钥更不要二次传播。守住这个界限抓包永远是一项正常的技术行为。技术上多数网课平台的视频不是简单的 MP4 文件而是 HLS 流媒体视频被切成若干 ts 分片其中最重要的文件是一个.m3u8索引文件。在 Fiddler 或 mitmproxy 里搜索m3u8就能找到这个索引地址。用下载工具比如 ffmpeg就可以拉取分片拼成一个完整的视频ffmpeg -i https://example.com/video.m3u8 -c copy output.mp4不少同学会问“为什么我抓到 m3u8 但视频仍然是一片黑”那通常是因为视频本身用了 AES-128 加密且密钥接口需要额外鉴权。这时候不要继续折腾绕过版权风险很高技术上也不值得。建议改用录屏等合规方式做学习笔记。5. 免费抓包工具最容易踩的五个坑工具说完了下面进入我实际踩出来的“排障区”。很多人抓包失败最后都归结到五类问题上证书、代理、权限、内存、免费限制。按顺序排查能省掉一半折腾时间。5.1 HTTPS 证书不生效的排查链路最常见的现象是手机装了证书代理也设了但浏览器仍然报证书错误或者 App 直接弹网络异常。按这个链路查下去确认系统时间是否准确。手机时间差太多CA 证书会直接被判无效。确认代理 IP 和端口是否能连通。电脑上执行netstat -ano | findstr 8080Windows或者lsof -i :8080macOS/Linux看看抓包工具是否真在监听。确认证书是否装到了正确的证书库。Android 7 以上的 App 默认只认系统证书用户安装的证书很多 App 是不信任的。模拟器一般能用“设置 → 安全 → 加密与凭据 → 从存储设备安装证书”来导入如果 App 还是抓不到就需要把用户证书转系统证书这一步通常要求 root 或使用模拟器的 root 功能。iOS 这边容易漏掉的是“设置 → 通用 → 关于本机 → 证书信任设置”里没有把根证书开关打开。装完证书还要去手动信任这步一跳过只是安装不表示已信任。如果 App 做了证书固定SSL Pinning那就是证书之外的问题了。它会把代理工具签发的那个 CA 证书直接视作无效这时候正常的代理方式很难解决只能通过逆向、Hook 或使用专业调试器来绕过属于安全研究范畴没有开发授权建议不要硬碰。5.2 抓包结果文件太大、Wireshark 卡顿怎么处理抓包一时爽保存火葬场。全量抓包开着跑一天pcap 文件动辄几个 GBWireshark 打开都要卡几十秒。几个实用解法抓包时设置捕获过滤器尽量只保留目标 IP 和端口节省磁盘空间。用轮转文件在 Wireshark 的 Capture Options 里设置 Ring buffer比如每个文件 100MB、保留 10 个文件能控制总大小。抓完包后不要直接在原文件里找用tshark把目标字段导出成 CSV 或 JSON然后再去分析。如果你确实需要长时间抓包优先用tcpdump在服务器侧执行不要用 GUI 工具。5.3 免费版、社区版功能边界别搞混免费和全平台软件的“坑”往往不在技术而在授权。比如 Fiddler Classic 虽然免费但它是 Windows onlyFiddler Everywhere 跨平台但有免费层限制团队协作等功能是要订阅的。Burp Suite Community 免费但是反应慢、不能保存项目、扫描能力被砍。Charles 根本不是免费的试用期到了要么买要么换。选型之前别把“下载免费”当成“永远免费”更别把“社区版”当“完全版”用。如果用下来发现免费版确实不够我一般建议先换一个免费工具替代而不是急着买商业授权。比如想在 Windows 上用 Fiddler但跨平台没预算那就改用 mitmproxyPython 脚本能力反而更强。6. 一张总表和我的选型经验最后把常用的工具放在一张速查表里方便你按“平台 场景 价格”快速定位。这张表适用于大多数日常开发、测试和分析需求。工具免费全平台覆盖核心用途上手难度Wireshark是Windows/macOS/Linux网络层抓包与分析中高tcpdump是Linux/macOS/Windows 转译命令行抓包中mitmproxy是Windows/macOS/LinuxHTTP/HTTPS 调试、脚本化抓包中高Fiddler Classic是仅 WindowsHTTP(S) 调试与重放低Fiddler Everywhere免费层级Windows/macOS/Linux跨平台 HTTP(S) 调试低Burp Suite Community社区版免费Windows/macOS/LinuxWeb 安全测试与抓包高HttpCanary免费/高级版Android手机端本地抓包低Charles收费Windows/macOS/Linux 移动端HTTP(S) 可视化调试低我的选型经验是无论平时做 Web 开发还是移动端开发第一优先装的永远是 Wireshark不为别的它是最底层的“裁判工具”代理工具说“我抓到了”最终是不是完整链路用 Wireshark 看一眼才知道。日常调接口、看小区小程序、抓网课视频我会默认开 mitmproxy 的mitmweb因为它跨平台、免费、有 Python 脚本扩展比 Fiddler 在各系统下的迁移成本低。如果你是 Windows 用户而且只想快速改个请求试试那 Fiddler Classic 确实是很顺手的选择要是你搞安全测试Burp Suite Community 无论如何都要会用。最后一个小经验抓包不是抓得越多越好而是“命中关键流量”才越好。每次开工前先明确目的抓哪台设备、哪个端口、哪个协议配置好过滤再做捕获你的效率会直接上一个台阶。