如何使 VirtualBox 中的来宾虚拟机中运行的服务可以在虚拟机外部访问

如何使 VirtualBox 中的来宾虚拟机中运行的服务可以在虚拟机外部访问

我使用 Oracle VirtualBox 并拥有在来宾 VM 上运行的服务。如果我在来宾操作系统下并在 Firefox 中打开服务 URL,则应用程序将按预期工作:

https://localhost:8443

有人告诉我,我可以使用 NAT 和端口转发功能来使服务在来宾虚拟机外部可用,但它没有给我想要的结果。我做了以下事情:

访客虚拟机(OpenSUSE Leap 15.0):

我激活了http和https

Yast -> Software -> Firewall

在此输入图像描述

虚拟盒:

VM Settings -> Network -> Adapter 1
Attached to: NAT
Port Forwarding

在此输入图像描述

重新启动 VM 并 https://localhost:4444在主机操作系统上的 Web 浏览器中打开,但出现的ERR_CONNECTION_CLOSED不是 Web 应用程序登录窗口。

netstat主机上的输出

$ netstat -a
...
  TCP    0.0.0.0:2222           WD-DT-11AD:0           LISTENING
...
  TCP    0.0.0.0:4444           WD-DT-11AD:0           LISTENING
...
  TCP    0.0.0.0:8888           WD-DT-11AD:0           LISTENING
...

我还按照评论中的建议将访客端口相应地更正为 8443 和 8080,但这没有帮助。

我的配置中缺少什么?我还需要设置什么(也许在来宾虚拟机中)吗?

答案1

解决方案非常简单。我只需将端口 8443 添加到 Yast 防火墙的可访问端口列表中。这是屏幕截图上的“端口”选项卡。此后,可以从主机操作系统访问该 Web 应用程序。

相关内容