VMWare复制CentOS虚拟机后无法联网的问题解决方案
作者:Lilixxs
1. 现象描述
原来使用一个 CentOS 虚拟机,这里叫 CentOS_1。网络配置如下:VMWare软件设置 NAT 模式,虚拟机配置 DHCP 自动获取 IP ,开机启动网络。可以正常联网
现在要重新配置一个虚拟机,环境同 CentOS_1。因此我直接从硬盘复制了一份 CentOS_1 的文件,并用 VMWare 打开虚拟机,将复制的虚拟机更名为 CentOS_2
由于是最小安装,因此使用ifup / ifdown / ip addr
指令操作网卡,通过直接修改网卡配置文件配置网络
网络配置文件地址/etc/sysconfig/network-scripts
网络文件名称ifcfg-网络名称
如:网络名称为ens33
,则对应的配置文件名为ifcfg-ens33
相关指令
# 设对应的网络名为 ens33 # 1. 启动网络 ifup ens33 # 2. 关闭网络 ifdown ens33 # 3. 重启网络 = 先 ifdown 再 ifup # 查看网络的 ip 地址 ip addr
CentOS_2 的网络配置与 CentOS_1 的完全相同:VMWare软件设置 NAT 模式,虚拟机配置 DHCP 自动获取 IP ,开机启动网络
但在使用指令ifup
启动网卡时出现了问题:等待了很久之后,提示连接超时
2. 问题解决
1. 重新配置 VMWare 软件的 NAT 配置 – 无效
检查 VMWare 虚拟机的 NAT 和 网络配置:
NAT 配置 CentOS 对应的 VMnet 勾选 NAT 模式(如果新建虚拟机时选择 NAT 模式,那默认值就是 NAT 模式不用修改)勾选“将主机虚拟适配器连接到此网络”勾选“使用本地 DHCP 将 IP 地址分配给虚拟机”,启用 VMWare 的 DHCP 功能,保证虚拟机能自动获取到 IP 地址NAT设置 --> 网关 = 子网 IP 中最后一位 = 2 的地址
2. 重启 VMWare 软件的 NAT 和 DHCP 服务 – 无效
打开任务管理器,找到“服务(Services)”选项卡,选中以下两个服务,右键点击“重启(Restart)”,即服务的重启
- VMnetFHCP = VMWare 的 DHCP 服务
- VMWare NAT Service = VMWare 的 NAT 服务
3. 重启虚拟机 CentOS_2 – 发现问题
点击“关机”后,再点击“开机”。
开机时提示“ens33 的 MAC 地址已经被使用”,类似以下提示
发现问题:直接复制虚拟机文件生成的虚拟机 CentOS_2 与原虚拟机 CentOS_1 之间的 mac 地址相同,导致两台虚拟机不能同时获取到 ip 地址 (DHCP 协议通过 MAC 地址区分不同设备)
4. 为 CentOS_2 虚拟机配置不同于 CetOS_1 的 MAC 地址 – 解决问题
关闭虚拟机电源
虚拟机 --> 设置 -->
硬件 --> 网络适配器 --> 高级 --> MAC 地址,点击“生成” --> 确定并保存
注意:只有关机状态下才能修改 MAC 地址
重启虚拟机
使用ifdown/ifup
指令重启网卡,使用ip addr
指令查看是否获取到了 ip 地址
5. 总结
本次网络连接不上的问题是因为:直接复制虚拟机文件,会导致两个虚拟机中的网卡 MAC 地址相同,导致两个虚拟机无法同时获取到 IP 地址(DHCP 根据 MAC 地址识别不同的设备)