VirtualBox 仅主机静态 IP 连接问题

VirtualBox 仅主机静态 IP 连接问题

我正在使用 Virtualbox 4.3.30,并且已成功设置了一台具有主机专用网络的虚拟机,使其能够在具有非静态 IP 的 DHCP 上工作,但当然,对于虚拟机服务器来说,它基本上是无用的。所以现在,我正在尝试设置一台可以访问互联网的虚拟机 Linux 服务器,以及一个主机专用静态 IP。主机是 Windows 8.1,客户机是 Ubuntu 服务器。

虚拟机配置

我有两个网络设备,一个用于 NAT,另一个设置为适配器 #3 的主机专用设备。NAT 允许访问互联网,并且正常运行。主机专用适配器不允许主机访问虚拟机。

VirtualBox 配置

仅主机适配器 #3 已禁用 DHCP,其 IP 为192.168.50.101,网络掩码为255.255.255.0

VM 系统

运行后:

sudo ifconfig eth1 192.168.50.101 netmask 255.255.255.0 up

…(从这里然后ifconfig显示 eth1(仅主机)已连接到 IP 地址。在虚拟机上,如果我这样做,wget 192.168.50.101它会将默认的 Nginx 页面拉到自身上。从主机上,我能够 ping 静态 IP 地址,但在浏览器中,IP 地址超时并显示消息Unable to connect

我已尝试过的东西!

我也尝试过编辑/etc/network/interfaces 从这里没有成功。

这是怎么回事?我猜这不是防火墙问题,因为主机在仅主机使用 DHCP 时连接,而且我可以从主机成功 ping。此外,浏览器的“无法连接消息”似乎比简单的超时更快出现在浏览器中。

更新:

我想我遇到了一个错误——如果我在网络专用适配器中激活 DHCP,并将下限和上限设置为相同的 IP 地址,则浏览器似乎可以突然允许网络出现并成功。

答案1

您声明您设置了以下内容:

sudo ifconfig eth1 192.168.50.101 netmask 255.255.255.0 up

根据我使用 VirtualBox 的所有经验,客户操作系统在该192.168.56.x范围内的网络上运行。因此,我建议改用以下命令:

sudo ifconfig eth1 192.168.56.10 netmask 255.255.255.0 up

至于为什么我选择192.168.56.10— 而不是192.168.56.101— ,在您对这个答案的评论中您说道:

不,我不能使用,192.268.56.x因为默认 DHCP 通常在该范围内工作,因此会引起冲突。

嗯,问题是,如果网络掩码255.255.255.0只有最后一个八位字节,则地址将永远传递到主机上的较大网络。这就是网络掩码的作用。此外,如果您在 VirtualBox 应用程序本身中查看“首选项 -> 网络”,然后查看“仅主机网络”,选择该网络(应该是)vboxnet0,然后单击编辑图标并查看 DHCP 服务器设置,您将找到以下 DHCP 服务器设置:

  • 服务器地址: 192.168.56.100
  • 服务器掩码: 255.255.255.0
  • 地址下限: 192.168.56.101
  • 地址上限: 192.168.56.254

请注意,DHCP 不会占用 中的整个 IP 范围;它只是从 DHCP 服务器本身的192.168.56.x开始,然后从到。这意味着到范围内的 IP可以静态使用。请注意,我省略了,因为这是将主机操作系统连接到客户操作系统的 VirtualBox 路由器 IP 地址。192.168.56.100192.168.56.101192.168.56.254192.168.56.2192.168.56.99192.168.56.1

然后,为了使更改永久生效,请添加一个网络接口,如下/etc/network/interfaces所示。打开/etc/network/interfaces文件:

sudo nano /etc/network/interfaces

然后,当所有测试都完成并且按预期工作后,您可以添加或调整界面细节,如下所示:

# The local hostmachine access interface.
auto eth1
iface eth1 inet static
address 192.168.56.100
netmask 255.255.255.0

相关内容