我有一台运行虚拟机的 ubuntu 的 Windows XP 机器。我在 ubuntu 机器上运行着一个 Apache 服务器。我已经在虚拟机上设置了端口转发,因此如果我转到运行虚拟机的 Windows XP 机器上的 localhost: 8080,我可以访问 ubuntu 服务器 index.html。但是,当我从网络上的另一台计算机尝试时,我无法访问它。我可以访问 Windows XP 服务器,但不能访问 ubuntu。例如,如果我执行 192.168.1.8:8080(我的 Windows XP 机器的 IP),8080 就是我将虚拟机转发到的 IP。我得到一个无法显示的页面。有什么想法吗?
答案1
最主要的是,VirtualBox 在 NAT 模式下运行,而不是 Bridge 模式下运行。
因此,VBox 正在将 IP 地址分发给您的虚拟机。
答案2
VirtualBox 只监听本地主机接口而不是外部接口,或者主机上有防火墙阻止了连接。如VirtualBox 文档,您想要配置端口转发而不指定主机IP,如下所示:
VBoxManage modifyvm "VM name" --natpf1 "guesthttp,tcp,,8080,,80"
如果在第二个逗号后输入类似 127.0.0.1 的内容,则需要删除并重新创建端口转发。
如果端口转发正确,请检查 Windows 防火墙是否被禁用或允许访问端口 8080。