Skip to content

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

CentOS 网卡配置示意图

问题背景

在 vSphere 环境中克隆 CentOS 虚拟机后,源虚拟机和克隆机的网卡 UUID 会完全相同,导致网络服务无法正确管理网络连接。

解决方案:使用 uuidgen 生成新 UUID

本文采用 传统 network 服务 管理网卡(而非 NetworkManager),通过 systemctl restart network 重启网络。

操作步骤

1. 生成新的 UUID

bash
uuidgen

输出示例:

40979f2a-ca4b-4105-8b11-048ea46ab542

2. 编辑网卡配置文件

bash
vim /etc/sysconfig/network-scripts/ifcfg-ens192

3. 修改 UUID 值

将配置文件中的 UUID 行替换为刚生成的新 UUID:

ini
UUID="40979f2a-ca4b-4105-8b11-048ea46ab542"

4. 重启 network 服务

bash
systemctl restart network

5. 验证 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,也可能是 eth0ens33 等,请根据实际情况修改
  • 修改 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,无需手动处理。

最后更新2026/06/15 16:17
如果你觉得这篇文章有帮助,或者想聊聊技术、工作,欢迎通过下面方式联系我:
contact fishfinal