![无需 SSH 隧道即可使用不同目标和源端口的 VPN 连接](https://linux22.com/image/711403/%E6%97%A0%E9%9C%80%20SSH%20%E9%9A%A7%E9%81%93%E5%8D%B3%E5%8F%AF%E4%BD%BF%E7%94%A8%E4%B8%8D%E5%90%8C%E7%9B%AE%E6%A0%87%E5%92%8C%E6%BA%90%E7%AB%AF%E5%8F%A3%E7%9A%84%20VPN%20%E8%BF%9E%E6%8E%A5.png)
我们运行一个带有 Web GUI 的小型 Web 服务器,但其中存储的机密数据越来越多。因此,我们设置了一个小型 OpenVPN 服务器。在过去的几个月中,由于 http 和 https 代理越来越严格,我们在连接服务器时遇到的困难越来越多。
因此,我看到的唯一机会是将其更好地封装在另一个协议中。由于我们仍在端口 80 上运行 Web 服务器,而且端口 80 和 443 通常处于打开状态,因此我将尝试设置 OpenVPN 以通过 HTTP 运行,但我想在服务器站点上使用其他端口,例如 8080,这样连接将是
客户端.....-> 服务器
1.2.3.4:80 -> 5.6.7.8:8080
我的问题是,我找到的资源只有设置服务器监听端口 80,这样可行吗?
我知道 OpenVPN 的共享端口功能,但我想避免使用它,以保持服务器的响应时间等较低。
此外我学过这取决于 HTTP VPN 连接的建立方式,因为有些代理不允许 http CONNECT 请求,所以您无法建立隧道。这仍然是 OpenVPN 的问题吗?因为我只能找到非常老的帖子来谈论它。
我也开始阅读SoftEther VPN但我无法判断它是否真的是等效的或更好的替代方案,因为我找不到那么多独立的信息。
答案1
1) 在发起与外部服务的连接时,客户端无权选择源端口,而是由操作系统 IP 堆栈选择,并且是从 1025-65535 范围内随机选择的。因此,如果这个问题的重点是客户端从端口 80 连接,那么您将不会得到这个。
2)此外,我怀疑从端口 80 发起连接是否会对您有帮助,因为大多数防火墙和 IDS 都查看目标端,而不是源端。