ITPub博客

首页 > 移动开发 > IOS > 抓包工具有哪些?七款常用工具和 TraceEagle 怎么分工

抓包工具有哪些?七款常用工具和 TraceEagle 怎么分工

原创 IOS 作者:SniffNote 时间:2026-10-22 10:00:20 0 删除 编辑

有一个现象,每次有人问「抓包工具有哪些」,底下给的答案十有八九不是工具名,而是一句「看你要抓什么」。这话没错,但对刚上手的人基本等于没说——工具名字都没认全,怎么知道要抓什么。

所以这篇换个写法:先把常见工具按「解决什么问题」摆出来,再说每个工具的功能,结尾给一条能直接照着走的选法。先说明一点,这些工具我在不同阶段都用过,哪个也不是全能的,别指望一款工具把包分析、接口调试、自动化全包了。

你要解决的问题 先试哪个 它的位置
看协议细节、握手、重传、DNS / QUIC Wireshark 包分析的主场
服务器上没有图形界面 tcpdump 先落成 pcap,再拉回来分析
调 HTTP / HTTPS 接口、改请求、断点 Charles / Fiddler / Proxyman 代理层的 API 调试
批量处理、接 CI、写自定义逻辑 mitmproxy 用脚本换灵活度
只在当前网页看请求 浏览器 DevTools 零安装,范围也限于这个页面
手机 App、证书绑定、非 HTTP 流量 TraceEagle 代理、网卡、应用层三种抓法收在一处

工具没有高下,只有合不合手嘛。挨个说说。

只看包本身:Wireshark 和 tcpdump 怎么选?

Wireshark 是包里最细的那一层。协议分层树、过滤器、跟踪 TCP 流、看握手和重传,这些它做得最完整。排查「包到底有没有到」「为什么一直重传」「QUIC 为什么没降级」这类问题,绕不开它。

常用的过滤条件也就那几条, ip.addr == 10.0.0.5、 tcp.port == 443、 http.request,记不住就从右键菜单里生成。学习成本主要在过滤器语法上,真正常用的其实不多。

它也有脾气呢。想看 TLS 里面的内容,得有会话密钥——要么让客户端把密钥吐出来(SSLKEYLOGFILE 这类),要么有服务端私钥,不是所有程序都配合。它的视角是包,不是接口:想改一条响应、Mock 一份数据,那不是它的活。

tcpdump 解决的是另一个问题:服务器上没有桌面环境。ssh 上去跑一条 tcpdump -i eth0 -w capture.pcap(网卡名按实际换),抓完把文件拉回本地,用 Wireshark 打开。抓的时候尽量把范围收窄,只抓某个端口或某个主机,别一上来就全量,文件会大得吓人。这两个搭着用的场景,比很多人想的要多。

调 HTTP 接口:Charles、Fiddler、Proxyman 怎么分?

这一类的共同点是代理:把设备或程序的流量指到工具上,装好证书,HTTPS 就能解成明文。日常调接口、看请求参数、改个响应体,基本都在这一层。

Charles 是很多人入门时用的第一款。断点、Rewrite、Map Local、限速这些功能都有,界面是老派的树形结构,用久了倒也顺手。它的 Rewrite 和 Map Local 是招牌,改响应、把线上域名指到本地,都是点几下的事。收费。

Fiddler 的 Classic 版在 Windows 上免费,脚本能力是它的特色,AutoResponder 做 Mock 也方便。跨平台的 Everywhere 版是另一套产品,要付费。

Proxyman 在 macOS 上的体验很顺,界面清爽,抓手机流量的引导做得细,证书安装按提示点就行。同样是收费工具。

三者还有个共同门槛:抓 HTTPS 要装证书,证书还得装到真正发请求的那台设备上。电脑上抓浏览器和抓手机,证书的位置是两回事,第一次配的时候最容易在这卡住。

差别主要在平台、界面和脚本能力上,能力大方向是一致的。选哪个,看你日常用哪台机器、团队里别人用什么,以及愿不愿意为体验付费吧。

要写脚本或者接 CI:mitmproxy 能补什么?

mitmproxy 是开源的那一路,Python 写 addon,控制台和 Web UI 都有,能批量处理、能重放、能无头跑在 CI 里。

代价是要写代码。你就想改个响应头,用它就有点杀鸡用牛刀;但你有一批流量要按业务规则处理、或者想把抓包接进自动化流程,它的灵活度是图形工具给不了的。它的控制台界面是键盘操作,第一次用会有点不适应,习惯之后效率挺高。它没有图形化的请求列表那么直观,但脚本能做的事多得多。

只在浏览器里看一眼:DevTools 够不够?

够,也是最快的。F12 打开 Network,请求、响应、耗时、Copy as cURL 都在,还能模拟慢网。装都不用装。

调试跨域、看 preflight、检查缓存有没有命中,DevTools 也是最直接的。想临时改个响应,Chrome 的 Local Overrides 也能顶一下,但只管当前浏览器。

局限也清楚:只覆盖当前浏览器里的这个页面。原生 App、别的设备、命令行程序,它都够不着;想持久化地改响应,也不方便。

那 TraceEagle 放在哪?

上面几类工具的分工,大致是按「抓哪一层」划的。 TraceEagle 的思路不太一样:它把三种抓法放进同一个工具里。

代理抓包负责 HTTP 这一层,规则驱动的解密代理能处理 HTTP/1.1、HTTP/2、HTTP/3、WebSocket、gRPC,也能改写和重放。网卡直抓负责整机流量,DNS、QUIC、ICMP、ARP、任意 TCP / UDP 都能看,还带协议分层树和连接追踪。应用层抓包则直接从程序内部取明文,不装证书、不配代理,做了证书绑定也能拿到内容。

自动解密是它省事的一块。不用手动导密钥、不用配环境,挑一种抓法开始,会话密钥自动匹配,原始包和解密后的明文并排看。

手机端也不用另起一套:iOS 免越狱,Android 免装证书(整机抓包需要 root)。抓完之后的事情也没落下——断点、Mock、重放、请求对比、生成代码、反推 OpenAPI、弱网模拟、主机详情、网络诊断,都在同一个界面里。还有内置的 MCP 服务,能让 AI 助手直接调抓包能力。

三种抓法可以同时开,按场景组合;多个会话之间是隔离的,各看各的,不会搅在一起。

取舍也得说。它不是 Wireshark 的替代品,协议层的深度分析还是 Wireshark 更专;也不是安全测试平台,漏洞扫描、攻击面探测那些事它不做。它解决的是「抓得到、解得开、改得动」这条日常链路,全平台免费。

怎么定:照着这几条走

  • 只查网络层的问题,先上 Wireshark;服务器上没界面,用 tcpdump 落 pcap。
  • 调 HTTP 接口,Charles、Fiddler、Proxyman 三选一,看你用的平台和预算。
  • 要批量、要自动化,mitmproxy 写脚本;只看当前网页,DevTools 最快。
  • 手机 App、证书绑定、非 HTTP 协议,或者不想在几个工具之间来回切,这类把多种抓法收在一起的方案更省事。

平台也是个现实因素。公司配的是 Windows,Charles、Fiddler 都能跑;团队清一色 Mac,Proxyman 的体验会更顺;要跨平台又不想花钱,mitmproxy 这类开源工具更合适。

工具的分工不是按名气排的,是按「你要看哪一层、要改到什么程度」排的。

真实项目里也很少只用一个工具。常见的组合是:先用代理工具把接口层看清楚,抓到的包需要深挖协议时转给 Wireshark;CI 里的批量校验交给 mitmproxy 或者命令行工具。工具之间能接上,比单挑一个全能选手更实际。

「抓包工具有哪些」这个问题,真正难的不是记住名字,是知道自己卡在哪一层。先判断是包的问题、接口的问题,还是 App 内部的问题,再挑工具,基本不会走偏啊。

手边要是已经有顺手的工具,就先用它把问题定位出来;定位之后发现它够不着,再换。折腾工具本身,其实挺容易上瘾的,别本末倒置就好。工具用得顺手,问题解决得就快;为了用工具而用工具,反而绕远。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70051062/viewspace-3186382/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2026-08-13

  • 博文量
    20
  • 访问量
    16541