Java 隧道和 tcp 代理

标签 java tcp proxy

我需要通过 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/

相关文章:

java - android java Map与自定义BiFunction合并

java - 我如何正确地使用 Log4j,关闭所有 Appender 并因此关闭文件

sockets - 套接字的替代品

tcp - 如何检查 wifi 路由器上打开的端口

docker - goproxy 背后的 gPRC 返回证书错误,在没有代理的情况下工作正常

java - 成员对象调用类方法

java - Android Studio 提供的 android 应用程序触发错误

java - 如何在 Java 中将 TCP 发送按钮放入循环中?

Gradle已从服务器: Forbidden接收到状态码403

java - HttpClient 的代理身份验证问题