
透明代理拦截出站网络流量,并通过自身进行转发,而终端设备则不会察觉到中介的存在。这种模式可对请求进行集中监控,无需在客户端设备或应用程序内进行任何手动特征。
iptable命令是Linux上常用的防火墙软件,是netfilter项目的一部分。
(1)iptabtles是采用数据包过滤机制工作的,所以它会对请求的数据包的包头进行分析,并根据我们预先设定的规则进行匹配来决定是否可以进入主机。
(2)iptbales四表五链
Charles、redsocks、iptables
1. 对Charles的代理进行设置,需要确保设置上透明代理,查看Proxy >Proxy Settings > HTTP Proxy > ✅ Enable transparent HTTP proxying。

2. Android手机装好Charles的证书,手机无需配置手动代理,其中高版本Android系统证书信任可参考:https://cloud.tencent.com.cn/developer/article/2496038。 3. 下载redsocks(https://fh0.github.io/assets/android-redsocks2.tgz)后解压。

4. 创建配置文件redsocks.conf,具体内容如下:
base {
log_debug = off;
log_info = on;
log = stderr;
daemon = off;
redirector = iptables;
}
redsocks {
bind = "127.0.0.1:16666";
relay = "10.67.183.87:8889";
type = socks5;
autoproxy = 0;
timeout = 13;
}
其中 bind 是透明代理地址,relay 是Charles代理且端口要用Proxy Settings>Socks Proxy的端口,⚠️ 注意配置文件的每一对{}后面应该有一个空行,即最后一个 } 需要再还一行。
5. 连接手机,确保adb命令可用,使用adb push 命令将 redsocks.conf、 redsocks2_arm /redsocks2_arm64 推入/data/local/tmp 中。使用 adb shell getprop ro.product.cpu.abi 可以查看手机CPU架构,如果显示arm64-v8a
则使用redsocks2_arm64。
adb push /path/redsocks2_arm64 /data/local/tmp/redsocks2
adb push /path/redsocks.conf /data/local/tmp6. 查询需要定向抓包APP的UID,使用adb shell dumpsys package packagename|grep appId,查询出应用的UID,这里的appId就是UID。

7. 配置iptables,其中--uid-owner 后面的参数需要修改为需要定向抓包APP的UID,--to-destination 需要修改为redsocts的代理地址及端口。
iptables -t nat -A OUTPUT -p tcp ! -d 127.0.0.1 -m owner --uid-owner 10195 --dport 0:65535 -j DNAT --to-destination 127.0.0.1:16666 本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。