Charles 本身是很好的手机 app 流量代理工具,对代理的流量有很好的分类和梳理,但是对比同类型的代理工具,charles 始终有一个痛点,它仅能被动接收手机端流量,最后展示出来的就是一片混乱。
我通过 iptables 对手机中指定 app 的流量过滤,交由 sing-box 进行转发,实现了对指定 app 流量的专有代理,并且没有数量限制。因为使用到 iptables,所以需要系统有 root 权限。
如何使用
要想让 app 能被 charles 代理,都得把 charles 的证书推入系统证书目录里去,基于 root 权限,有很多模块可以实现,例如 MoveCertificate。

charles 端得开启 SOCKS proxy, 端口自定义。

打开 DAM, 填入电脑 IP 和刚才设置的端口:

然后进入选择 app 列表,这里区分了系统应用和用户应用,可以通过按钮反选,还可以显示应用的 uid。选中的 app 始终置顶
选好后,退回主页面,点击开始,就能实现代理了。

如果按照上面的操作,但是 Charles 还是没有流量,多半是被电脑防火墙拦住了,可以创建相应的出入站规则来解决。
项目网址:FlowDAM


