如何解决从 Windows 客户机到 Mac OS X 主机的 VirtualBox 端口转发不起作用的问题?

如何解决从 Windows 客户机到 Mac OS X 主机的 VirtualBox 端口转发不起作用的问题?

关于 VirtualBox 端口转发问题有很多问题,但没有一个与我的具体细节有关。设置细节:

我在 VirtualBox 4.1.2 中安装了 Windows 7 Professional 64 位,托管在 Mac OS X 10.6.8 中。我localhost在 Windows 安装中的不同端口上运行了多个 Web 服务器。我无论如何都无法使端口转发正常工作,以便我可以从 Mac OS X 访问这些 Web 服务器。

我的设置如下所示;是的,我有一个 NAT 适配器:

在此处输入图片描述

在我的 VirtualBox 配置文件中相关部分如下所示:

<NAT>
  <DNS pass-domain="true" use-proxy="false" use-host-resolver="false"/>
  <Alias logging="false" proxy-only="false" use-same-ports="false"/>
  <Forwarding name="RLPWeb" proto="1" hostport="7084" guestip="127.0.0.1" guestport="7084"/>
  <Forwarding name="UtilWeb" proto="1" hostport="4040" guestip="127.0.0.1" guestport="4040"/>
  <Forwarding name="WCARLP" proto="1" hostport="8084" guestip="127.0.0.1" guestport="8084"/>
  <Forwarding name="WCAUtil" proto="1" hostport="4848" guestip="127.0.0.1" guestport="4848"/>
</NAT>

我已经关闭了 Windows 防火墙以确保它不会干扰,并且我没有在 Mac OS X 上运行防火墙。

无论如何,当我尝试在任何 Mac OS X 浏览器上访问例如时http://127.0.0.1:4040/,它最终都会超时。

该虚拟机的日志文件显示它正在正确读取设置,并暗示它在此处执行了正确的事情:

00:00:08.286 NAT: set redirect TCP host port 4848 => guest port 4848 @ 127.0.0.1
00:00:08.286 NAT: set redirect TCP host port 8084 => guest port 8084 @ 127.0.0.1
00:00:08.286 NAT: set redirect TCP host port 4040 => guest port 4040 @ 127.0.0.1
00:00:08.286 NAT: set redirect TCP host port 7084 => guest port 7084 @ 127.0.0.1
00:00:08.290 Changing the VM state from 'LOADING' to 'SUSPENDED'.
00:00:08.290 Changing the VM state from 'SUSPENDED' to 'RESUMING'.
00:00:08.290 Changing the VM state from 'RESUMING' to 'RUNNING'.
00:00:08.337 Display::handleDisplayResize(): uScreenId = 0, pvVRAM=000000012017d000 w=1834 h=929 bpp=32 cbLine=0x1CA8, flags=0x1
00:00:09.139 AIOMgr: Host limits number of active IO requests to 16. Expect a performance impact.
00:00:13.454 NAT: DHCP offered IP address 10.0.2.15

我尝试过将主机 IP 设置为127.0.0.1,也尝试过将客户 IP 设置为空白10.0.2.15。这些似乎都不起作用。

我还可以查看什么来解决这个问题?

答案1

我注意到 macOS X VirtualBox 主机上的端口转发存在问题。

使用网络适配器 PCnet-Fast III (Am79C973) 和 Oracle Developer Day 图像作为访客。

每当我暂停访客并恢复时,所有端口转发都会丢失。

我不确定问题是否与网络适配器或客户机有关,但我不知道客户机如何能够意识到端口转发。

这是一个不太可能的猜测,但如果你对此案有任何共同点,尝试关闭(完全关闭客户机的电源)并启动设置端口转发的机器。立即测试任何端口转发是否工作,并且只有在获得积极结果后才尝试暂停和恢复客户机。

答案2

您是否尝试过将连接从 Windows 虚拟机桥接到 Mac?在虚拟机内部,网络地址转换 NAT 对我来说也是一件令人头疼的事情。桥接可为虚拟机提供主机可以看到的 IP。考虑到您的端口转发情况,这应该不是问题,但我会尝试从实际 IP 而不是转换后的 IP 转发端口。

答案3

根据 VirtualBox 官方文档,执行此操作的首选方法是将网络模式设置为“仅主机”或“桥接”。

总结:使用桥接,而不是 NAT。

来源:https://www.virtualbox.org/manual/ch06.html

相关内容