必须禁用systemd预测性命名规则并同步调整内核参数与配置文件,否则仅重命名配置或临时改名均无效;需在GRUB中添加net.ifnames=0 biosdevname=0、重命名ifcfg-文件、修改DEVICE和NAME为eth0、重建GRUB及initramfs后重启方可生效。

直接改不了,必须禁用 systemd 的预测性命名规则,再配合配置文件重命名和内核参数调整,否则重启后会还原。
为什么 ifconfig 或 ip link rename 不生效
CentOS 7 启动时由 udev 和 systemd-networkd 根据硬件位置、固件信息自动生成接口名(如 ens192、enp0s3),ip link set dev ens192 name eth0 只是临时改名,下次启动就失效。系统服务(如 NetworkManager、network)读取的是配置文件中的 DEVICE 和 NAME,不匹配就会拒绝启用。
必须修改 /etc/default/grub 添加内核参数
这是最关键的一步,否则所有后续操作都会被覆盖:
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离
- 编辑
/etc/default/grub,找到GRUB_CMDLINE_LINUX行,在末尾添加net.ifnames=0 biosdevname=0 - 确保整行类似:
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet net.ifnames=0 biosdevname=0" - 运行
grub2-mkconfig -o /boot/grub2/grub.cfg(UEFI 系统可能是/boot/efi/EFI/centos/grub.cfg) - 不执行这步,即使重命名配置文件,重启后网卡仍叫
ensXX
重命名配置文件并修正 DEVICE/NAME 字段
仅改文件名不够,DEVICE 和 NAME 必须同步更新:
- 进入
/etc/sysconfig/network-scripts/ -
mv ifcfg-ens192 ifcfg-eth0(把原配置文件重命名) - 编辑
ifcfg-eth0,将DEVICE=ens192改为DEVICE=eth0,NAME=ens192改为NAME=eth0 -
ONBOOT=yes必须设为yes,否则启动时不加载 - 如果存在多个网卡,每个都要单独处理,不能共用一个
ifcfg-eth0
重启后仍显示旧名称?检查 initramfs 是否更新
有时 grub 配置已更新,但 initramfs 还缓存了旧规则:
- 运行
dracut -f强制重建 initramfs - 确认
ls /sys/class/net/输出里没有ens*,只有lo和eth0 - 若仍有
ens*,说明内核参数没生效,检查cat /proc/cmdline是否含net.ifnames=0 - 虚拟机环境下,部分 BIOS/UEFI 设置可能干扰
biosdevname,可单独试net.ifnames=0
真正起作用的是内核参数,不是配置文件;而配置文件只是让 network 服务能识别它——两者缺一不可。别跳过 grub2-mkconfig 和 dracut -f,这是最容易被忽略的两个点。

















