如何将 Android 流量重定向到代理

如何将 Android 流量重定向到代理

我知道Android不支持自动检测pac文件,而且我还知道端口 443 不能重定向。因此,我得到的是:

例如,假设鱿鱼缓存代理端口为 3128 (eth1 本地,eth0 互联网),以下 iptable 规则对列表“macsphone.txt”不起作用:

for macsphone in $(/path_to/macsphone.txt); do
    iptables -t nat -A PREROUTING -i eth1 -m mac --mac-source $macsphone -p tcp --dport 80 -j REDIRECT --to-port 3128
    iptables -A INPUT -i eth1 -m mac --mac-source $macsphone -p tcp --dport 3128 -j ACCEPT
    iptables -A FORWARD -i eth1 -m mac --mac-source $macsphone -p tcp --dport 3128 -o eth0 -j ACCEPT
done

PD:“macsphone.txt”列表包含 Android 智能手机的 mac 地址

只有这条规则会起作用,其中为 http 的 squid 代理打开透明端口 8080,为不通过 squid 代理的 https 打开 443:

for macsphone in $(/path_to/macsphone.txt); do
    iptables -t nat -A PREROUTING -i eth1 -m mac --mac-source $macsphone -p tcp --dport 80 -j REDIRECT --to-port 8080
    iptables -A INPUT -i eth1 -m mac --mac-source $macsphone -p tcp --dport 8080 -j ACCEPT
    iptables -A FORWARD -i eth1 -m mac --mac-source $macsphone -p tcp --dport 8080 -o eth0 -j ACCEPT
    iptables -A FORWARD -i eth1 -m mac --mac-source $macsphone -p tcp --dport 443 -o eth0 -j ACCEPT
done

有没有办法将 android 流量以非透明模式(对于 http 和 https)重定向到 squid 代理,而无需在 android 上手动设置代理(ip/端口)?(使用 iptables、一些类似于 pac 文件的脚本、apache2、qr 码或其他东西)

也就是说,避免这种情况: 在此处输入图片描述

PD:DNS、NAT、MASQUERADE 等对我的网络开放

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -i eth1  -o eth0 -j MASQUERADE
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -p udp --dport 53 -j ACCEPT

PD2:请不要求婚pi 孔中间的鱿鱼 SSL 碰撞或类似

相关内容