一、前言

问题由来?

使用VMware克隆CentOS虚拟机后,无法进行静态IP设置/无网络连接

方案思路?

CentOS虚拟机克隆后,由于网卡MAC地址等信息跟被克隆的系统一致,但是克隆后的虚拟机网卡其实已经变了,所以CentOS不会采用原来的网卡配置文件。所以克隆后的CentOS直接去修改原有网卡配置文件,去设置静态/固定IP是不会生效的。

适用范围?
  • CentOS 6
  • CentOS 7

二、解决过程

  • 查看网络连接信息
[root@centos7 ~]# ifconfig -a
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.103  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::232f:3f29:c029:a253  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:81:11:2b  txqueuelen 1000  (Ethernet)
        RX packets 91  bytes 9778 (9.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 84  bytes 11762 (11.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

以上信息说明当前系统使用的网络连接名是ens33 应该是CentOS抛弃了之前的网络连接,重新生成了一个

  • 查找网络连接配置文件
#CentOS网络连接配置文件均在/etc/sysconfig/network-scripts目录下,且以ifcfg开头
[root@centos7 ~]# ll /etc/sysconfig/network-scripts | grep "ifcfg"
-rw-r--r--. 1 root root   196 2月  24 16:23 ifcfg-eno16777736
-rw-r--r--. 1 root root   254 9月  16 2015 ifcfg-lo

网络配置文件中并没有对应ens33的网络配置文件
我们只需要将ifcfg-eno16777736更改为ens33对应的配置文件即可

  • 修改配置文件名
cd /etc/sysconfig/network-scripts
mv ifcfg-eno16777736 ifcfg-ens33
  • 修改配置内容
#修改配置文件ifcfg-ens33
vi ifcfg-ens33

#去掉UUID、HWADDR、MACADDR配置项
#然后直接参考以下配置

TYPE="Ethernet"
BOOTPROTO="static"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.1.101
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=114.114.114.114
  • 删除网络规则文件
rm -rf /etc/udev/rules.d/70-persistent-net.rules  
rm -rf /etc/udev/rules.d/90-eno-fix.rules
  • 重启
reboot