【问题标题】:Java tunnel and tcp proxyJava隧道和tcp代理
【发布时间】:2018-05-22 17:44:07
【问题描述】:

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

【问题讨论】:

    标签: java tcp proxy


    【解决方案1】:

    您希望在设置为隧道到目的地的端口上直接代理本地主机。例如,如果您的隧道设置为从 4000(本地)到 3389(在您真正要连接的主机上),则目标是 Localhost,1000,代理类型 Direct。见SSH tunneling via JSch

    【讨论】:

    • 可以在没有 SSH 的情况下完成吗?您有可以提供的简单样品吗?
    • 不知道,没试过。我更大的观点是,您正在做的是隧道,而您正在尝试的是代理,它们是不同的东西。如果它是一条隧道,那么您的应用程序完全不知道数据是如何从一台机器传输到另一台机器的,它只需要被告知连接到哪里。
    • 也许我的隧道词被滥用了。为什么java不支持tcp代理,为什么只支持socks和http?我需要连接到 tcp 代理服务器。我想这是我的问题,但 java 不允许这种方法。有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-21
    • 2014-08-04
    • 2012-08-02
    • 1970-01-01
    • 2017-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多