【问题标题】:Tunneling through HTTP通过 HTTP 建立隧道
【发布时间】:2011-03-31 04:08:54
【问题描述】:

用 JAVA 编写

我正在创建一个连接到代理的程序,然后通过隧道连接到另一台服务器以发送 TCP 数据包,这是我的代码:

{
Socket skt = new Socket(proxy_address, proxy_port);
PrintStream myOutput = new PrintStream(skt.getOutputStream());

String Request = "CONNECT " + host + ":" + 443 + " HTTP/1.0";
String host3 = "Host: " + host + ":" + 443;
myOutput.println(Request + "\r\n" + host3 );
}

试图找出为什么我没有得到代理服务器的响应。

【问题讨论】:

  • 您的代码是什么语言。它看起来像 Java,但要确保你应该用所使用的语言标记你的问题。

标签: http ssl tcp tunneling proxies


【解决方案1】:

您也可以尝试查看corkscrewProxytunnel,尽管它们基本上是基于 HTTP(S) 代理的 SSH。

【讨论】:

    【解决方案2】:

    您还需要两个行尾 - 一个用于指示 Host: 标头的结束,另一个用于空行以指示连接请求的结束。试试:

    myOutput.println(Request + "\r\n" + host3 + "\r\n\r\n");
    

    【讨论】:

    • 我实际上还有一个问题,当我开始向服务器发送我想要的数据包时,我需要对它做些什么特别的事情吗?喜欢在末尾添加空行吗?
    • @Masterban:不,从服务器读取响应标头(以空行终止)后,如果响应代码为 200,那么您将与另一端建立原始连接.
    猜你喜欢
    • 2015-05-05
    • 2020-08-25
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 2018-05-02
    • 2013-09-28
    • 2010-12-26
    相关资源
    最近更新 更多