我正在寻找一种方法,通过单个端口为不同网络/域上的两个主机之间的 HTTP 流量设置安全隧道。需要注意的是,我无法控制网络或硬件的物理方面。不过,我确实拥有对主机本身的管理访问权限。假设两个网络之间没有连接问题或端口阻塞,我只是希望对流量进行加密,因为它是一个不受信任的网络。
目标
发送到某个网络上“代理”主机上的特定端口(例如 2000)的 HTTP 请求将通过隧道连接到“端点”主机上的目标端口并返回响应。
我研究过的内容
我不是系统专家,我更多的是应用程序开发人员,所以我研究的大多数信息对我来说都是新的。似乎实现我的目标的普遍接受的方法是使用 VPN。有无数种选择,而且信息量大得令人难以置信。我找到的所有信息都是针对远程用户访问设置的,允许访问所有网络资源(这对于我的目标来说太过分了)。如果我选择这条路线,似乎 L2TP 和 IPSec 是可行的方法。
我尝试过的方法
我已成功使用 cygwin 和 openssh/autossh 在主机之间建立并维护 ssh 隧道,这完全符合我的要求。在 VPN 方面,我已设置 RRAS 并按照一些教程操作,但未成功,我似乎无法找出问题所在。
我想知道
实现我的目标的普遍接受的方法是什么? autossh 隧道确实有效,但我缺乏经验,不知道这种方法是否过时/弃用或会导致未来出现问题。我应该继续进行 VPN 设置吗?
答案1
我可能漏掉了一些东西,但听起来最简单的方法就是在您的 Web 服务器上使用 SSL。如果代理主机除了将请求传递给另一个 Web 服务器之外没有对请求执行任何操作,那么这应该没问题——只需让人们通过 https 与端点服务器通信即可。(如果您尝试连接两个私有网络而不通过互联网,则必须在路由器上设置适当的策略以让流量通过。)
答案2
对于在服务器之间设置“安全管道”,OpenVPN 可能是最好的、简单的、可以持续工作的解决方案。
如果 autossh 满足您的要求,那么 OpenVPN tun 配置可能就是您正在寻找的。
答案3
我为此使用了 SSTP VPN,这是一个很好的指南,您可以使用: http://www.netcal.com/blog/?p=135
但问题是为什么不自动化 HTTPS 通信并放弃 VPN?