经过一番研究,终于调通了VirtualBox虚拟机互连、主宿机互连、以及虚拟机上网。在此分享一下过程。
1、VirtualBox中的虚拟网卡。VirtualBox安装完成后,会在系统中装一块虚拟网卡,我们在管理->全局设定中可以看到。
这块网卡是在 Host-Only 连接方式中,主宿机互访的桥梁。
2、主机访问虚拟机通过Host Only的方式实现。
主机访问虚拟机这个是最简单的。通过在网卡1中选择 仅主机(Host-only)适配器,我们的虚拟机就可以获得一个内网的地址,主机可以直接访问这个地址。
我们可以使用DHCP,也可以自己指定IP。一般情况下,最好指定一个固定的IP。
3、现在要想实现虚拟机上网,我们可以为虚拟机再添加一块网卡2,通过网络地址转换(NAT)方式,达到虚拟机上网的目的。
4、在经过以上设置之后,启动虚拟机,这里要对CentOS的IP、网卡配置修改。
步骤①
修改网卡1:/etc/sysconfig/network-scripts/ifcfg-eth0 内容如下
HWADDR=08:00:27:35:89:DB
TYPE=Ethernet
UUID=5f2808b1-8a5b-4fe2-a281-04b01bb1fc0b
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.56.101
NETMASK=255.255.255.0
GATEWAY=192.168.56.1
注意:HWADDR是物理地址,必须和虚拟机配置的网卡1的物理地址一致
步骤②
网卡2配置文件是不存在的,需要手工添加。从ifcfg-eth0拷贝即可,再修改/etc/sysconfig/network-scripts/ifcfg-eth1 内容如下
DEVICE=eth1
HWADDR=08:00:27:95:D3:BE
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=dhcp
注意:这里一定不要配置GATEWAY,原因是:
【linux双网卡默认路由问题】 原来linux在加载网卡配置文件的时候是先加载eth0,再加载eht1的。
这样,如果eth1设置了gateway项,则会覆盖掉 eth0中的gateway设置,因此解决方法就是删除eth1的gateway设置。
~~~另外需要注意,如果安装的是Ubuntu,Host-only的那块网卡也不能配置gateway。~~~
应该修改interface文件如下:
root@hostA:/etc/network# more interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.56.105netmask 255.255.255.0# The secondary network interface
auto eth1
iface eth1 inet dhcp
(即:eth0也不要设置gateway,否则导致eth1无法连接Internet,切记)
5、在上述配置都完成之后,在root用户下重启network服务即可。再测试ping www.baidu.com,美妙的反馈字符出现了。
备注:最后,不要忘了在物理机器(即:自己的电脑、笔记本)的本地连接中,打开VirtualBox Host-Only Network本地连接。
然后将IP地址设置为:192.168.56.1(即:作为虚拟机的公共网关IP)
以及设置“共享Internet属性”
备注:可能会出现每次VirtualBox Host-Only Network 的IP地址被自动重置了,不再是之前配置好的192.168.56.1。
此时的解决办法:在VirtualBox“全局设定” -> “网络” -> 删掉 “仅主机(Host-Only)网络” 这条配置,再新建一个即可。