【问题标题】:android SOCKS proxy安卓 SOCKS 代理
【发布时间】:2012-06-08 15:31:38
【问题描述】:

我的(测试)android 项目中有以下代码:

        URL u = new URL("http://www.google.com");

        InetSocketAddress sa = InetSocketAddress.createUnresolved("127.0.0.1", 1080);
        Proxy proxy = new Proxy(Proxy.Type.SOCKS, sa);
        HttpURLConnection conn = (HttpURLConnection) u.openConnection(proxy);

然后我实现了一个监听 1080 端口的 SOCKS 服务器。

我遇到的问题是在SOCKS4连接请求中,目的地址和端口不是“ip for google”:80而是127.0.0.1:1080,即代理地址。

如果我返回 ok,我开始获取 HTTP 数据。

是我做错了什么还是 SOCKS 客户端中存在错误?

【问题讨论】:

  • 在哪里可以获得 SOCKS 版本 5 库以用于我的 android 应用程序?你能告诉我吗

标签: android socks


【解决方案1】:

我有一个级别较低但可能对您有用的解决方案:

这适用于我在 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 代理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-28
    • 2011-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多