8

如何在 android 模拟器中连接 SOCKS 代理连接,我能够在系统浏览器上成功连接 SOCKS 代理服务器,但在使用系统网络设置时它在模拟器中不起作用。我努力了

System.setProperty("socksProxyHost", proxyHost);
System.setProperty("socksProxyPort", port);

并且

SocketAddress addr = new InetSocketAddress(proxyHost, proxyPort);
Proxy httpProxy = new Proxy(Proxy.Type.SOCKS, addr);urlConn = url.openConnection(httpProxy);

但失败了。我想在我的设备上的应用程序中连接和使用 SOCKS 代理连接和 Web 服务。提前致谢。

4

2 回答 2

2

这适用于我在运行SSHTunnel的根 Nexus 4 上的 Android 4.3 上:

    SocketAddress proxyAddr = new InetSocketAddress("127.0.0.1", 1984);  
    SocketAddress hostAddr = new InetSocketAddress(address, port);
    java.net.Proxy proxy = new java.net.Proxy(java.net.Proxy.Type.SOCKS, proxyAddr);
    socket = new Socket(proxy);
    socket.connect(hostAddr);

注意:我还安装了iptables beta,但不确定是否需要。

为此,要与模拟器一起使用,请将 IP 更改为 10.0.2.2,这是您主机的 Android 别名。当然,您必须在您的机器上运行本地 SOCKS 代理。

于 2013-10-21T12:49:03.377 回答
1

据我所知,Android 不支持开箱即用的 SOCKS 代理,但您可以尝试安装Privoxy,它可以充当 HTTP 代理,并且可以使用 SOCKS 上游代理。(我用它来将 Android 模拟器连接到TOR。)然后您可以使用 UI 设置 HTTP 代理(因此它甚至可以在真实手机上使用,而不仅仅是模拟器)。有关更多信息,请参阅我关于 Android 和 TOR 的博文

于 2013-08-28T10:55:56.097 回答