为了便于理解,我将尽可能提供详细信息;因此,请耐心等待。我将不胜感激。
我有一部安卓智能手机。我使用 ProxyDroid 连接到 SOCKS5 代理服务器,然后我打开这部安卓智能手机上的热点,并使用 iPhone 连接到由安卓智能手机创建的 Wi-Fi 热点。
[解决了]问题是我的 iPhone 无法通过 socks5 服务器访问互联网。(但互联网运行正常)
因此,我试图找出原因。我附上了有关 ProxyDroid 所做工作的更多详细信息,并且我查看了其源代码: ProxyDroid 源代码在 Github 上 基本上,在调用 redsocks 之后,它还会在建立 sock5 代理后运行几行 iptables 命令(端口 8124 未被使用,它用于 HTTP 代理):
$DIR/redsocks -p $DIR/redsocks.pid -c $DIR/redsocks.conf
iptables -A INPUT -i ap+ -p tcp --dport 8123 -j ACCEPT
iptables -A INPUT -i ap+ -p tcp --dport 8124 -j ACCEPT
iptables -A INPUT -i lo -p tcp --dport 8123 -j ACCEPT
iptables -A INPUT -i lo -p tcp --dport 8124 -j ACCEPT
iptables -A INPUT -p tcp --dport 8123 -j DROP
iptables -A INPUT -p tcp --dport 8124 -j DROP
iptables -t nat -A PREROUTING -i ap+ -p tcp -d 192.168.43.1/24 -j RETURN
iptables -t nat -A PREROUTING -i ap+ -p tcp -j REDIRECT --to $proxy_port
然后,最后:(xxx.xxx.xxx.xxx 是我的 socks5 服务器 IP)
/system/bin/iptables -t nat -A OUTPUT -p tcp -d xxx.xxx.xxx.xxx -j RETURN
/system/bin/iptables -t nat -A OUTPUT -p tcp -j REDIRECT --to 8123
我找到了一个临时的解决方案;根据这里创建 WiFi 热点接入点,它提到我必须做一些额外的步骤才能使热点将所有流量转发到 redsocks(由 ProxyDroid 创建的 socks5 代理):(顺便说一下,192.168.43.0/24 是我的热点的子网,8123 是 redsocks 的本地端口)
iptables -F
iptables -t nat -F
iptables -t nat -A PREROUTING -s 192.168.43.0/24 -p tcp -j REDIRECT --to-ports 8123
终于成功了!但又出现了另一个问题,我的 iPhone 的网速变得非常慢,我发现 DNS 查询没有通过 socks5 服务器。而且由于我执行了上面的 iptables -F,它删除了 ProxyDroid 制定的规则,我的 Android 智能手机无法访问 socks5 代理。
[这个问题已经解决了]我希望我的 Android 智能手机和 iPhone 能够同时通过 socks5 服务器访问互联网。
我解决了我的安卓手机和 iPhone 无法同时访问互联网的问题。原因是 ProxyDroid 实际上已经帮我完成了。我选择了 ProxyDroid 对热点执行的确切命令(我将其放在下面),让热点流量转发到 socks5 代理,它对我的情况不起作用的原因是因为热点的接口已更改为“wlan1”,所以我将这四个命令的“ap+”更改为“wlan1”,它起作用了,我不需要任何额外的 iptables 工作。但是我的 iPhone 上的网速仍然很慢,我尝试浏览 Google.com 或 Youtube.com,但速度不如我的安卓智能手机快。另一方面,与安卓智能手机相比,ping 速度和下载速度相当。
***iptables -A INPUT -i ap+ -p tcp --dport 8123 -j ACCEPT
iptables -A INPUT -i ap+ -p tcp --dport 8124 -j ACCEPT
iptables -t nat -A PREROUTING -i ap+ -p tcp -d 192.168.43.1/24 -j RETURN
iptables -t nat -A PREROUTING -i ap+ -p tcp -j REDIRECT --to $proxy_port***