我正在使用 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.100
192.168.56.101
192.168.56.254
192.168.56.2
192.168.56.99
192.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