玩virtualbox的linux虚拟机,必然会涉及两块内容,一个是与主机通信、一个是通过主机与外部网络进行通信。下面就先就与主机通信和外部网络通信进行配置讲解。
1、我也尝试过利用单个网卡进行上面两个功能的实现,可惜失败了。这里利用双网卡的配置来分别完成主机通信与外部网络通信。如下图所示进行两个网卡的配置:
网卡1:host-only适配器
在进行virtualbox的安装时会虚拟出一个网卡,网卡的名字一般为VirtualBox Host-Only Ethernet Adapter #2 此默认网卡可以在网络与共享中心中看到,并且虚拟出来的这个网卡的ip、子网掩码已经进行了相关配置,接下来可能会用到。
网卡2:采用网络地址转换的方式进行配置。简单来讲就相当于利用主机的网卡与外部进行通信。
2、配置完成之后启动计算机,查看文件cat /etc/udev/rules.d/70-persistent-net.rules
文件70-persistent-net.rules中保存的是我们虚拟出来的两个网卡的相关硬件信息。可以看到,文件中有eth0 和eth1两个网卡信息,这里通过比较ATTR信息可知eth0 对应于网卡1,eth1对应于网卡2.因此eth0主要用于与主机通信,eth1用于外部网络通信。
3、进入 cd /etc/sysconfig/network-scripts目录修改目录下的ifcfg-eth0 文件.该文件的DEVICE,HWADDR 应该与/etc/udev/rule.d/70-persistent-net.rules中的eth0一致.
3.1 我的ifcfg-eth0 文件,修改后为:
DEVICE=eth0
HWADDR=08:00:27:BB:80:FD
TYPE=Ethernet
UUID=b1f9a5b2-3bbc-4706-93f7-213b39ad8982
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp
3.2 同样修改ifcfg-eth1修改后参数配置如下
DEVICE=eth1
HWADDR=08:00:27:FD:82:4A
TYPE=Ethernet
UUID=d348790a-73dd-4c80-a78d-2596d0ad22b6
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp
4.重启服务, service network restart
上面的配置基本上可以完成win7的基本设置,但是在进行win7到win10的升级时出现如下错误:
Failed to open/create the internal network ‘HostInterfaceNetworking-VirtualBox Host-Only Ethernet Adapter #2’ (VERR_INTNET_FLT_IF_NOT_FOUND).
返回 代码: E_FAIL (0x80004005)
组件: ConsoleWrap
界面: IConsole {872da645-4a9b-1727-bee2-5585105b9eed}
解决方案:
打开‘管理’-‘全局设定’单击‘网络’-‘仅主机(host-only)网络’ 如下图所示:
先通过右手边的’-‘把相应网卡去除,然后通过‘+’再重新创造一个host-only网卡,此时,virtualbox的虚拟机即可正常启动。但是正常启动后会发现网络通信正常但主机无法正常通信。在进行serverce network restart时出现以下错误提示:
Determining IP information for eth0…. failed
解决方案:这个错误说明,没办法自动获取ip地址等信息,简单,无法自动获取那么久手动配置就行了。配置etc/sysconfig/network-scripts/ifcfg-eth0如下所示:
DEVICE=eth0
HWADDR=08:00:27:BB:80:FD
BOOTPROTO=static
BROADCAST=192.168.52.255
IPADDR=192.168.52.12
NETMASK=255.255.255.0
TYPE=Ethernet
UUID=b1f9a5b2-3bbc-4706-93f7-213b39ad8982
ONBOOT=yes
NM_CONTROLLED=yes
然后service network restart 即可。其中ip地址应定要和Host-only网卡中的IP在一个子网段。可通过主机的网络中心-属性-IPV4查看host-only的子网段配置信息。