我需要通过 tcp 代理建立隧道。在 Java 中,代理类型只有 socks、direct 或 HTTP。因此,在下面的示例中,将创建一个套接字,然后从 socketAddress
创建代理对象,类型为 socks。
如何指定代理是 TCP?
SocketAddress addr = new InetSocketAddress("socks.example.com", 1080);
Proxy proxy = new Proxy(Proxy.Type.SOCKS, addr);
Socket socket = new Socket(proxy);
InetSocketAddress dest = new InetSocketAddress("server.example.org", 1234);
try {
socket.connect(dest);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return isValidated;
最佳答案
你想要一个直接代理到你设置的端口上的 Localhost 以隧道到目的地。例如,如果您的隧道设置为从 4000(本地)到 3389(在您真正想要连接的主机上),目标是 Localhost,1000,代理类型 Direct。参见 SSH tunneling via JSch
关于Java 隧道和 tcp 代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50473633/