Appearance
CentOS 虚拟机克隆后处理网卡 UUID 重复问题

问题背景
在 vSphere 环境中克隆 CentOS 虚拟机后,源虚拟机和克隆机的网卡 UUID 会完全相同,导致网络服务无法正确管理网络连接。
解决方案:使用 uuidgen 生成新 UUID
本文采用 传统 network 服务 管理网卡(而非 NetworkManager),通过 systemctl restart network 重启网络。
操作步骤
1. 生成新的 UUID
bash
uuidgen输出示例:
40979f2a-ca4b-4105-8b11-048ea46ab5422. 编辑网卡配置文件
bash
vim /etc/sysconfig/network-scripts/ifcfg-ens1923. 修改 UUID 值
将配置文件中的 UUID 行替换为刚生成的新 UUID:
ini
UUID="40979f2a-ca4b-4105-8b11-048ea46ab542"4. 重启 network 服务
bash
systemctl restart network5. 验证 UUID 已更新
bash
cat /etc/sysconfig/network-scripts/ifcfg-ens192 | grep UUID输出示例:
UUID="40979f2a-ca4b-4105-8b11-048ea46ab542"完整命令速查
bash
# 一条命令完成所有操作(替换 ens192 为实际网卡名称)
NEW_UUID=$(uuidgen) && \
sed -i "s/^UUID=.*/UUID=\"$NEW_UUID\"/" /etc/sysconfig/network-scripts/ifcfg-ens192 && \
systemctl restart network && \
echo "UUID已更新为: $NEW_UUID" && \
nmcli connection show验证网络正常
bash
# 查看 IP 地址
ip addr show ens192
# 测试网络连通性
ping -c 4 8.8.8.8注意事项
- 网卡名称不一定是
ens192,也可能是eth0、ens33等,请根据实际情况修改 - 修改 UUID 后无需重启虚拟机,重启 network 服务即可生效
- 同一局域网内的虚拟机网卡 UUID 必须唯一
- 使用
systemctl restart network的前提是系统已启用传统 network 服务并禁用了 NetworkManager
切换至 network 服务(可选)
如果系统默认使用 NetworkManager,可以切换至传统 network 服务:
bash
# 停止并禁用 NetworkManager
systemctl stop NetworkManager
systemctl disable NetworkManager
# 启用 network 服务
systemctl enable network
systemctl start network预防措施(模板机配置)
在将虚拟机转换为模板前执行:
bash
# 删除 UUID,让克隆后的机器第一次启动时自动生成
sed -i '/^UUID=/d' /etc/sysconfig/network-scripts/ifcfg-ens192这样每次从模板克隆的新机器会自动生成唯一 UUID,无需手动处理。
