![通过 VPN 使服务器从外部可见](https://linux22.com/image/1582639/%E9%80%9A%E8%BF%87%20VPN%20%E4%BD%BF%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%BB%8E%E5%A4%96%E9%83%A8%E5%8F%AF%E8%A7%81.png)
我想要运行带有 VPN 的 GNU/Linux 服务器,使其在互联网上可见,因此,例如,如果我运行 Apache,并且 VPN 的公共 IP 是 12.34.56.78,那么通过访问 12.34.56.78,理论上我应该可以看到我的网站(或者这就是我想要的)。
有办法实现这个吗?
答案1
目前尚不清楚您设想的问题在哪里,但在同一个 IP 地址上运行 OpenVPN 服务器和 Web 服务器完全可行且简单 - 当然,发往该真实 IP 地址的数据不会通过 VPN 发送 - 通常会有另一组地址通过其进行宣传。
答案2
我假设您所说的 VPN 是指 NordVPN 或 Private Internet Access 等公共 VPN 提供商。您会发现的问题是 VPN 的公共 IP 是许多 VPN 用户共享的 IP。您需要端口转发,而在公共 VPN 上进行端口转发非常棘手(即使可用)。您将获得一个高于 10,000 的单个高端口号,而您无法控制它。您将无法获得用于 http/https 的标准端口 80/443。整个过程相当混乱,您最终会通过像http://12.34.56.78:87654其中 IP 和端口都是动态的,可能会改变。
您需要研究如何为您的特定 VPN 提供商请求端口转发。该选项可能仅通过您的提供商的 VPN 客户端软件得到官方支持,而 Linux 可能不支持该软件。您需要使用逆向工程解决方案。PIA 端口转发可以通过 curl 请求完成。PIA 示例