首页 > 解决方案 > 是否可以在计算机上托管网站但使用来自谷歌云虚拟机上的 vpn 服务器的静态 IP?

问题描述

我的网站在谷歌云虚拟机上启动并运行。但它运行缓慢,因为我只使用最便宜的。在将虚拟机升级到更强大的虚拟机之前,是否可以使用来自谷歌云虚拟机的 IP 在我自己的计算机上托管网站?我使用 softether 在其上成功设置了一个 vpn 服务器(检查我计算机上的 whatsmyip 显示来自 google cloud vm 的公共 IP)。任何提示和帮助将不胜感激。

标签: apachewebweb-hostingself-hosting

解决方案


VPN 通常用于传出连接,而不是传入连接。一般来说,您需要在您的云实例上运行某种瘦服务器,它将所有传入连接转发到您的家庭计算机。从访问者的角度来看,他们将连接到云 IP,但所有工作都将由您的家用 PC 完成。

当然,您的家用 PC 可能会有一个动态 IP,因此它必须保持服务器对此进行更新。

这是一个非常简单的实现。实际上不要这样做,这只是一个说明:

  1. 在您的家用 PC 上运行您的网站,以便它在例如。localhost:8000
  2. 在您的家用 PC 上设置 SSH 服务器
  3. SSH 进入云电脑
  4. 从那里,通过 SSH 转发 SSH回到您的家庭 PClocalhost:8000
  5. 在您的云 PC 上运行反向代理(例如 nginx)并告诉它代理到localhost:8000

只要连接有效,请求就会通过 SSH 代理到您的家用 PC。这显然不是一个方便的设置,并且由于许多原因,让云计算机 SSH 进入您的家庭 PC 是一个坏主意。您可以尝试将 SSH 限制在您的家用 PC 中,或者甚至在家中运行 VPN服务器并让您的云实例连接到该 VPN 以访问该网站。但是,这仍然不是最佳实践方法。

更好的方法是:

  1. 获取一个稳定的 URL(不必是完整的域,只要是可以转发给你 IP 的东西)
  2. 在你的云服务器上运行一个 nginx 反向代理,并告诉它代理到这个 URL
  3. 确保在 IP 更改时 URL 指向您的家用 PC(理想情况下,您希望每次打开家用 PC 时都会运行“更新 IP”脚本)

如果您不想要 URL,您还可以编写一个简单的脚本来hosts使用您家用 PC 的 IP 更新远程计算机上的条目。


推荐阅读