HTTP 服务器上的隧道

HTTP 服务器上的隧道

正如您所知,许多国家的审查制度阻止我们访问某些网站。

在土耳其,Facebook 和 Youtube 将受到审查。

我认为通过 HTTP 服务器传递这些审查将会很棒。

是否有任何脚本或应用程序可以让我们像隧道一样使用 HTTP 服务器?

或者,我该如何实现它,我将用什么?

我们将租用一台无限流量的服务器,供5-10个人使用,仅用于隧道传输。

答案1

您可以使用 OpenVPN。如果您使用监听端口 443 的 OpenVPN 服务器,则可能不会被过滤。但是,分析您的网络流量的人会知道您正在使用 OpenvPN:您可能希望避免这种情况。

如果您想避免这种情况,可以通过 HTTPS 代理连接到 OpenVPN 服务器。OpenVPN 知道如何使用 HTTP 代理,但不知道如何使用 HTTPs 代理,因此您必须使用 socat 之类的工具:

  • 在localhost上使用socat转发到HTTPS代理(部署在OpenVPN服务器附近);

    socat TCP-LISTEN:9999,bind=localhost OPENSSL:proxy.example.com:443

  • 要求 OpenVPN 使用本地主机作为 HTTP 代理。

OpenVPN -(HTTP 代理)-> 本地代理解包器 -(TLS)-> HTTP 代理 -(OpenVPN/TCP)-> OpenVPN 服务器

答案2

您可能希望使用 PPP over SSL:

socat OPENSSL:ppp.example.com:443 EXEC:"sudo pppd nodetach noipdefault notty noauth 192.168.0.1:198.169.0.2"

或通过 HTTPS 代理的 PPP:

socat EXEC:"corkscrew www.exmaple.com 443 ppp.example.com 9999" EXEC:"sudo pppd nodetach noipdefault notty noauth 192.168.0.1:198.169.0.2"

答案3

如果您只想让人们访问网站,更简单的解决方案可能是设置具有 CONNECT 功能的 HTTPs 代理。

答案4

您可以设置 SSH 隧道并使用带有 corscrew 的 ProxyCommand 将其中继到 HTTPs(或普通 TLS)代理:

ssh ssh.example.com

和:

 Tunnel point-to-point
 ProxyCommand corkscrew proxy proxyport %h %p

相关内容