Charles 本身是很好的手机 app 流量代理工具,对代理的流量有很好的分类和梳理,但是对比同类型的代理工具,charles 始终有一个痛点,它仅能被动接收手机端流量,最后展示出来的就是一片混乱。

我通过 iptables 对手机中指定 app 的流量过滤,交由 sing-box 进行转发,实现了对指定 app 流量的专有代理,并且没有数量限制。因为使用到 iptables,所以需要系统有 root 权限。

如何使用

要想让 app 能被 charles 代理,都得把 charles 的证书推入系统证书目录里去,基于 root 权限,有很多模块可以实现,例如 MoveCertificate。

screen-fSJi.png

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

image-20260111200854122.png

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

1-rvQK.png

然后进入选择 app 列表,这里区分了系统应用和用户应用,可以通过按钮反选,还可以显示应用的 uid。选中的 app 始终置顶

默认

显示 uid

切换系统应用

选好后,退回主页面,点击开始,就能实现代理了。

5-nMNi.png

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

项目网址:FlowDAM