在 MacBook 主机中,我运行 VirtualBox,其中有一个客户 ubuntu 服务器,并设置了 NAT 网络。
在虚拟机应用程序“Parallels”中,我将在主机上获取客户机的 IP 地址,稍后我可以为其设置主机名并直接访问它。
但是,我找不到使用 VirtualBox 实现此目的的方法。VirtualBox
为我提供的唯一解决方案是设置端口转发,并使用这些端口访问“localhost”。
如何设置所需的行为,而无需更改桥接网络设置,并将我的客户计算机公开到主机所连接的网络?
谢谢。
答案1
好吧,我不喜欢回答我自己的问题,但是我在另一个问题中找到了一个很好的答案,我想我会分享:
我正在寻找简单的使用虚拟机的方法。
由于创建非正统端口(我无法将主机的 80 端口转发到客户机的 80 端口,因为 VirtualBox 还不允许这样做)不是一种简单且舒适的方法,我无法接受任何要求这样做的答案,因为这不是我想要的。
因此,我在右侧列表中找到的一个答案说,我可以在 VirtualBox 中为相关虚拟机创建不止一个,而是两个网络接口,然后我将有一个 (NAT) 供主机访问 VM,另一个 (Host-Only) 供 VM 访问互联网。
这样:
- 由于客户机与主机不在同一网络上,因此可保证客户机的安全
- 让我能够在主机上为客户机 IP 创建主机名 - 以便于访问,而无需使用从主机到客户机的端口转发
- 并允许我的客户机访问互联网
由于我尝试了不同的选项,我不得不在客户机 ubuntu 服务器计算机上手动设置接口。
这让我遇到了一些非常烦人的问题,所以我想分享其中的一个:
将第一个接口 (eth0) 设为主机专用接口(用于连接主机和客户机),将第二个接口 (eth1) 设为 NAT 接口。
如果不这样做,客户机尝试使用主机专用接口访问互联网时可能会出现问题。
这个问题可能是由完全不同的东西引起的,顺序可能与它没有任何关系,但这就是发生在我身上的事情,所以我与任何读到这篇文章的人分享,以防你遇到这样的问题。
感谢您的帮助!
编辑:刚刚看到@Goyuix 发布了问题的链接,这也帮助了我。谢谢@Goyuix。
答案2
配置客户机时有几种网络选择,值得查看官方文档虚拟网络。因为您已经排除了桥接网络,所以您对剩余模式的选择实际上归结为您是否希望您的客人可以访问主机以外的网络(例如,您是否需要互联网访问)。
如果您需要互联网访问,最好的选择是使用您描述的 NAT 网络。您需要通过 VirtualBox NAT 引擎转发特定端口以访问客户机上的服务。有束的有关的 问题这里是 SuperUser 上的介绍,但基本上你会在命令行上输入类似下面的命令(这指示主机将 TCP 8080 上的传入连接转发到客户机上的 TCP 80):
VBoxManage setextradata "<Guest Name>" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/Protocol" TCP
VBoxManage setextradata "<Guest Name>" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/GuestPort" 80
VBoxManage setextradata "<Guest Name>" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/HostPort" 8080
如果客户机不需要访问互联网,最好使用“仅主机网络”模型。这将客户机适配器与主机上的基于软件的适配器(通常在 192.168.56.0/24 子网中)桥接。您将能够访问主机或客户机上的任何服务,而无需任何额外配置。好吧,可能允许流量通过您可能安装的任何软件防火墙 - 但通常这“有效”™