一、前言
1、问题由来
使用VMware克隆CentOS虚拟机后,无法进行静态IP设置/无网络连接
2、方案思路
CentOS虚拟机克隆后,由于网卡MAC地址等信息跟被克隆的系统一致,但是克隆后的虚拟机网卡其实已经变了,所以CentOS不会采用原来的网卡配置文件。所以克隆后的CentOS直接去修改原有网卡配置文件,去设置静态/固定IP是不会生效的。
3、适用范围
- CentOS 6
- CentOS 7
二、解决过程
1、确认正确的网络配置文件
- 查看网络连接信息
[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对应的配置文件即可
2、调整网络配置文件名并设置静态IP
- 修改配置文件名
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
3、删除多余网络规则&重启生效
- 删除网络规则文件
rm -rf /etc/udev/rules.d/70-persistent-net.rules
rm -rf /etc/udev/rules.d/90-eno-fix.rules
- 重启
reboot