2013-08-28 55 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代理。