开发同学应该都遇到过这种情况:代理配好了、证书也装好了,打开目标程序一抓——列表里一条都没有。更迷惑的是换浏览器试了试,明明抓得到;就那个客户端,怎么都不出现。别怀疑自己是不是漏配了什么,这大概率是撞上了"不认系统代理"的程序——它不走你设的那条代理路径。
这篇讲这种情况的解决办法,无感代理(全流量)是怎么把流量绕不开给解决的、怎么开、以及哪些情况它也管不了,都过一遍。
传统代理抓包能成立,靠的是一个默契:程序 自觉去读系统代理设置,然后把请求交给代理发出。浏览器和常见的 App 都守这个默契。
但有一类程序不吃这套: 自己实现网络栈、直接连目标地址。后台服务、部分客户端软件、自带网络模块的桌面应用,基本都是这个路子——你的代理设置对它们来说等于不存在。所以配置没毛病、证书没毛病,列表里就是一条都没有。
想通这一点,解法其实也就清楚了: 不是"把代理设得更对",而是让流量根本绕不开——在更靠下的位置把它接住。
“直连"这个词值得再拆一句:这类程序自己解析 DNS、自己建立 TLS 连接,全程不碰系统代理——你设的代理地址对它来说,就是一个不相干的字符串。
无感代理(全流量)的做法就是不依赖程序的"自觉”:不需要任何应用配置,本机全部流量都能进抓包—— 包括直连流量、包括本机做热点/网关转发的流量;不走系统代理的 App,照样抓得到。
换个角度理解这两种接入模式的分工:传统代理是"程序主动走代理",无感代理是"不管程序走不走,流量都从这儿过"。在 TraceEagle 的「代理本机」会话里,这两种模式就在「接入设置」里切换,一个下拉的事。顺带说一句:日常的抓包需求,传统代理其实就够用了——它上手最快,抓手机、抓局域网设备也是走它。无感代理是那种"用不上时想不起来、用上时真香"的备用档。
传统代理和"无感"的区别,不是谁更高级,是"程序配不配合"——配合的走前者,不配合的上后者。
用法简单到有点不像话:新建「代理本机」会话 → 齿轮「接入设置」→ 接入模式选 无感代理(全流量) → 开始抓。
两个提醒:
验证也是老一套:在 TraceEagle 里,列表里出现请求、详情里 TLS 显示"已解密"、每条流量标着 来源进程——这一个在混杂环境里挺好用,一眼就看出这条是谁发的。
无感模式下还能 按应用/进程精确圈定抓取范围——只抓某几个程序,其余流量一概不进列表。
这个能力在两种场景里特别顺手啊:一是"只想盯住那个不认代理的客户端",不想在几百条浏览器和系统请求里捞它——勾选它(连同它的更新进程之类),列表里就只剩你要看的;二是"程序已经在跑、没法用命令重启"的情况——之前写过的指定程序抓包要填一条启动命令把程序拉起来,而按进程圈定是对付"动不了它、但要看它"的场合。两个功能互补,按场景挑就行。
再补一个容易忽略的覆盖范围:如果本机开了热点、或者充当网关,其它设备经它转发的流量也在无感代理的捕获范围里——手机连电脑热点时抓它的流量,走的就是这条路嘛。
把"不认代理"这一关过了,并不代表万事大吉,以下几类问题它也无能为力,得换对应的路数:
一句话总结这份边界的用法: 无感代理解决"进不进得来",证书、去 Pin、放行名单、直连方式各自解决"解得开、谈得拢、联得上"。 排查时先定位卡在哪一层,再挑对应的工具,比挨个试快得多——这也是抓包排查的通用心法:列表里"没有"和"有但看不懂",永远是两类问题。
抓包工具的「接入模式」这个选项,很多人用了很久都没点开过呢——但它常常就是抓不到和抓得到之间的那层窗户纸。下次配好代理却颗粒无收的时候,先别怀疑证书,去「接入设置」里把无感代理切上试试。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70046795/viewspace-3183611/ ,如需转载,请注明出处,否则将追究法律责任。