Android中的袜子代理

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

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); 

但是被欺骗了 我想在我的应用程序Device.Thanks中提前连接并使用SOCKS代理服务器连接和Web服务。

Solutions Collecting From Web of "Android中的袜子代理"

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

  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的testing版,但我不确定是否需要。

为了使这个工作与模拟器改变IP为10.0.2.2这是Android的主机的别名。 当然,你将不得不在你的机器上运行本地的SOCKS代理。

据我所知,Android不支持SOCKS代理,但你可以尝试安装Privoxy ,它可以作为一个HTTP代理,它可以使用一个SOCKS上游代理。 (我用它来连接Android仿真器到TOR) 。然后你可以使用UI设置一个HTTP代理 (所以它甚至可以用在真实的手机上,而不仅仅是仿真器)。 有关更多信息,请参阅关于Android和TOR的博文 。