小言
所谓的克隆机,就是说VirtualBox中可通过已有的虚拟机可不断克隆出一样的虚拟机。而克隆出来的虚拟机,选择重新初始化所有网卡的MAC地址后,克隆机的网卡会出现两个,一个是原本的eth0,一个是新增的eth1。那么由于之前配置的是eth0(详见virtualbox中centos虚拟机中网络配置),而eth0已经没用了,eth1却没有做配置的,所以是不能上网的。以下就来解决这个问题。
环境
- 操作系统:Window8.1
 - VirtualBox版本:5.0.16
 - CentOS版本:CentOS6.7 64位 minimal版
 - 虚拟机CPU核数:1核
 - 虚拟机内存:2G
 - 虚拟机硬盘:15G
 
步骤1–问题信息查看
1  | shell> cat /etc/udev/rules,d/70-persistent-net.rules  | 
查看网卡信息,可见两块网卡,一个是原本的eth0,一个是新增的eth1。eth0的MAC地址是的原本虚拟机,eth1的MAC地址是通过上述的重新初始化所有网卡的MAC地址后重新虚拟获取的。
1  | shell> ls -al /etc/sysconfig/network-script  | 
这里只能看到一个ifcfg-eth0文件,而没有ifcfg-eht1文件,说明eth1网卡没有配置。自然ifcfg-eth0文件中配置就是原本虚拟机的配置了。
解决思路:
- 把
/etc/udev/rules,d/70-persistent-net.rules文件中的eth0网卡删掉,因为反正也是没用的了,把eth1网卡改成eth0,这样就只剩下一块网卡。 - 把
/etc/sysconfig/network-script/ifcfg-eth0文件中MAC地址修改成/etc/udev/rules,d/70-persistent-net.rules文件中网卡的MAC地址。 
步骤2–修改网卡信息
执行以下命令,修改网卡信息
1  | shell> vi /etc/udev/rules,d/70-persistent-net.rules  | 
把eth0网卡删掉,把eth1网卡信息中的NAME属性改成eth0。同时记录MAC地址,下述步骤3中有使用到。
修改好后,保存退出。
步骤3–修改eth0网卡信息
执行以下命令,修改eth0网卡信息
1  | shell> vi /etc/sysconfig/network-script/ifcfg-eth0  | 
把MAC地址属性HWADDR改成步骤2所记录的MAC地址。
步骤4–使网络配置生效
这里要使上述的网络配置生效,一定要重启虚拟机。我尝试过单单重启网络配置是不能成功的。
执行以下命令重启虚拟机
1  | shell> reboot  | 
步骤5–测试网络
查看网络配置信息
1  | shell> ifconfig  | 
结果如下,可知获取的IP信息是否符合路由器配置的,这里通过dhcp分配的IP为192.168.1.106。

使用ping或wget或curl等等命令都可以测试网络是否通,当然前提是路由器配置好了能上网的。
ping网关,成功则说明局域网中互相访问没问题了。
1  | shell> ping 192.168.1.1  | 
ping百度,成功则说明虚拟机可访问Internet了。
1  | shell> ping www.baidu.com  | 
至此,网络配置已经完成。
(•̀ᴗ•́)و ̑̑