使 Ubuntu 虚拟服务器可从互联网访问

使 Ubuntu 虚拟服务器可从互联网访问

我有下一个场景:

  • 装有 Windows 8.1 和静态 IP 地址(192.168.0.166)的笔记本电脑
  • 在 Windows 中,使用 VirtualBox 在虚拟机中安装了 Ubuntu Server 15.10,也有一个静态 IP 地址(192.168.0.10)。VirtualBox 网络配置为桥接模式。

我已从主机通过 SSH 访问虚拟服务器。虚拟 Web 服务器配置了 Apache,也可以从主机访问,只需将 IP 地址输入浏览器即可。但这只是因为我在同一个网络中。

如果我尝试从网络外部访问任一静态 IP,则它不起作用。

因此,我想从互联网访问虚拟服务器 IP(我有一个域名,我想将其重定向到这个 IP)。

我尝试了几种通过互联网搜索的答案,但无法实现我的目标。我开始认为 por 重定向是解决方案,但我不知道如何应用它。

我可以直接访问虚拟服务器静态 IP 吗?还是应该访问主机静态 IP?我需要做什么?!

答案1

有两种方法可以解决这个问题,具体取决于您如何为虚拟机配置网络。无论哪种方式,您都必须将路由器上的端口转发到内部某处。

如果你的网络设置为“NAT”,然后在边界路由器上设置网络端口转发以指向主机/计算机。然后编辑 NAT 的 VirtualBox 网络以在必要时添加端口转发。

如果您的网络设置为“桥接网络”,然后在边界路由器上的网络上设置端口转发,以指向路由器分配给您的 VM 的 IP 地址。

有几个问题。安全问题用粗体表示,其他问题用斜体表示。

  • 端口转发 22 不是最好的选择- 将会有暴力破解者和其他攻击者试图破坏机器。
  • 并非所有 ISP 都允许您运行 Web 服务器。 您可能已经为此设置了障碍。
  • 你的路由器实际上可能在端口 80 或 443 上监听管理连接。这意味着您的路由器正在使用这些端口,您将无权使用它们。还意味着您可能会将路由器管理端口暴露给网络,这更糟糕。
  • 您将无法使用任何外部的 URL 或主机名连接到您的系统,除非从动态 DNS 提供商处获取额外信息并进行正确的配置。您需要在路由器上使用动态 DNS 服务设置动态 DNS,以提供根据路由器当前 IP 地址(或其他等效发现系统)“更新”的域名,然后互联网才能访问您的站点(前提是端口转发正确完成,并且 VM 上的 Web 服务器配置正确。)

答案2

如果您想从本地网络外部访问您的服务器(虚拟或其他),则可以使用适当的端口转发设置路由器...在您的路由器中设置端口 22(SSH)、80(HTTP)和 443(HTTPS)以转发到 192.168.0.10,但将 22 设置为端口转发存在严重的安全风险。“互联网”无法理解并且无法直接与您的内部 LAN 通信,只能与您的公共 IP 地址通信,因此您必须将您的域注册到您的公共 IP 地址,而不是 192.168.xx 地址,并自行管理正确服务的转发。请记住,在执行此操作时,您应该使用 DDNS 注册,通过 DHCP 获取您的公共 IP 地址,或者如果您想进行标准域名注册,您应该有一个静态公共 IP 地址。

相关内容