2013-08-28 48 views
8

如何在android模拟器中连接SOCKS代理连接,我可以在系统浏览器上成功连接SOCKS代理服务器,但在使用系统网络设置时它不能在模拟器中工作。我曾尝试在android中的袜子代理

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

但Falied。我想要在Device.Thanks中的应用程序中连接并使用SOCKS代理连接& Web服务。

回答

1

据我所知,Android不支持开箱即用的SOCKS代理,但您可以尝试安装Privoxy,它可以充当HTTP代理,并且可以使用SOCKS上游代理。 (我用它来连接Android模拟器到TOR。)然后你可以set up a HTTP proxy using the UI(所以它甚至可以在真实的手机上使用,而不仅仅是模拟器)。有关更多信息,请参见my blogpost about Android and TOR

+0

谢谢,我试试这个,但得到了一个java.net.ConnectException: - 连接被拒绝 –

2

这对我的作品在Android 4.3上扎根的Nexus 4 SSHTunnel运行:

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代理。