VirtualBox 桥接网络端口转发问题

VirtualBox 桥接网络端口转发问题

我目前在一台 Windows 7 PC 上设置了一个开发环境,该 PC 运行 Ubuntu 11.04,位于同一台机器上的 VirtualBox 中。我在 VirtualBox 中使用“桥接网络”选项,在 Windows 中,我桥接了 VirtualBox 创建的网络连接和 Windows 7 中的标准 wifi 连接。这使我能够通过一个 IP 通过我的本地网络访问在 VirtualBox 中运行的 Web 服务器,但是当我进入路由器将端口 80 转发到外部世界时,它仍然无法访问。我是否缺少了一些东西才能使其按所述工作?我想将 VirtualBox 上的端口 80 暴露给外部世界。

答案1

根据我的经验,虚拟化网络和 WiFi 适配器通常会出现问题 - 而且这不仅仅是 VirtualBox 独有的。

我建议您将 VirtualBox 中的虚拟网络适配器切换为 NAT 模式,而不是桥接模式。然后,您可以通过 VirtualBox 进行端口转发(类似于您在路由器上执行的操作)来访问 Web 服务器。没有用于端口转发的 GUI,因此您需要从命令行执行此操作:

VBoxManage setextradata "VM Name Here" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/http/Protocol" TCP
VBoxManage setextradata "VM Name Here"  "VBoxInternal/Devices/pcnet/0/LUN#0/Config/http/GuestPort" 80
VBoxManage setextradata "VM Name Here” "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort" 8080

这会将主机上的端口 8080 转发到客户机上的端口 80,因此您的路由器配置需要将公共端口 80 转发到笔记本电脑上的 8080。您可以随意将端口号调整为适合您网络的任何值。

另一种选择是连接以太网电缆,因为在这种情况下桥接网络选项可以正常工作。

答案2

实际上,使用 Windows 主机上的 netsh 非常简单。

netsh interface portproxy add v4tov4 listenport=8080 listenaddress=HOSTIPADDRESS connectport=80 connectaddress=GUESTIPADDRESS

然后,正如 Goyuix 指出的那样,您只需将路由器公共端口 80 到 8080 转发到您的主机。

相关内容