我想使用带有 SOCKS 代理的 Java Socket 来连接 Tor(我正在使用 Orbot 并且 Tor 服务在端口 9050 上运行)。
我得到了错误:
I/System.out:java.net.UnknownHostException:主机未解析:3g2upl4pq6kufc4m.onion
我的代码如下:
// setup proxy
address = new InetSocketAddress('localhost', 9050);
proxy = new java.net.Proxy(java.net.Proxy.Type.SOCKS,address);
// setup socket
client = new Socket(proxy);
inet = new InetSocketAddress("3g2upl4pq6kufc4m.onion", 80);
// connect
client.connect(inet);
这是合法的,因为 Android 可能会通过网络配置中指定的 DNS 服务器执行 DNS 解析,而洋葱地址的解析将不起作用。
如何指定让 Tor 服务执行 DNS 解析(Tor 通常会处理来自 TCP 数据包的主机名)?