我知道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 碰撞或类似