您可以从外部网络访问虚拟机吗?

您可以从外部网络访问虚拟机吗?

我一直在尝试在运行 Ubuntu 20.04 LTS 的虚拟机 (Virtual Box) 上创建 Web 服务器和电子邮件服务器。在我的本地网络上运行一切正常,但每当我尝试使用电子邮件服务器或访问网页时,它都无法将我连接到服务器。

我已经将我的虚拟盒设置为桥接适配器,并在路由器上设置了正确的设置。

我已经在主机上尝试了相同的配置,并且可以从网络外部访问它。

我之所以想要在虚拟机中拥有这两台服务器是因为我将使用主机来运行 Windows 并通过它管理其他东西。

我也可以购买另一台计算机并将其用作服务器,但我想尽可能少花钱。

编辑

我设置了 DMZ 主机,然后设置了端口转发。当我第一次设置它时,我完全不知道它是什么,但它起作用了,所以我没有改变它。现在我去搜索,发现我太愚蠢了。

我删除了 DMZ 主机,现在只使用端口转发。它与 OpenVPN 配合使用,将端口 1194 转发到我的物理机 IP。

我的 Web 服务器安装在虚拟机上。我已将其转发到我的 VM 的 IP。当我尝试通过域名访问 Web 服务器时,在我的本地网络内,它可以正常工作。

当我远程尝试同样的操作时,它不起作用。然后我尝试通过我的公共 IP 访问,它成功了。

我以为是防火墙,但是我在我的 ubuntu 网络服务器上允许了端口 80 和 443,它仍然不起作用(搜索域名)。

答案1

如果您将其作为桥接网络(而不是 NAT)连接,则每个虚拟机都应从路由器分配一个 IP 地址,并可以通过家庭网络访问,就像它们是物理计算机一样。您已正确设置了这一点 - 所以我相信问题可能出在防火墙上。请确保在虚拟机中配置防火墙以允许来自 WAN 和 LAN 的流量以及程序本身(这样它们就可以允许并因此预期 WAN 流量)——也许您的路由器也需要为此进行配置。最后,您需要转发必要的端口(如果您的 ISP 允许 - 我知道有些 ISP 不允许您转发电子邮件端口),但这似乎在您的物理 PC 上有效,所以我认为这应该没问题。只需将端口转发规则从您的 PC 更改为虚拟机 IP 地址,配置防火墙后它应该可以正常工作。

答案2

感谢所有发布答案的人,但我做错的是设置了 DMZ 主机。当我禁用 DMZ 主机时,过了一段时间我才能够通过域名访问我的网络服务器,但最终我可以了,不知道为什么花了这么长时间,我已经让域名指向我的公共 IP。但最后还是成功了。我还没有尝试过电子邮件服务器,但我认为只要我将端口转发到正确的 IP,它就会工作。

再次感谢朋友们。

相关内容