CentOS 7 默认采用基于硬件的 ens33 等命名方式,取代了传统的 eth0,本文详细解析了这一新规则背后的机制,包括 biosdevname、MAC 地址及 PCI 路径等,文章还介绍了如何通过修改 grub 配置来恢复 eth0 命名,帮助用户快速适应 CentOS 7 的网络配置变化。
在之前的 CentOS 6 或更早版本中,当我们使用 ip addr 或 ifconfig 查看网络状态时,第一块网卡通常被命名为 eth0,第二块为 eth1,以此类推,这种命名方式简单直观,但也存在一个问题:如果服务器硬件发生变化,或者添加了新网卡,网卡的顺序可能会发生改变,导致配置文件失效。
在 CentOS 7 中,情况发生了变化,很多用户在安装或配置系统后发现,网卡名称不再是熟悉的 eth0,而是变成了 ens33,这不仅让习惯了旧版本的用户感到困惑,也导致在修改网卡配置时出现了路径错误。
本文将深入解析 CentOS 7 网卡命名规则的变化,并提供几种将 ens33 改回 eth0 的解决方案。

为什么 CentOS 7 不再叫 eth0?
从 RHEL 7(Red Hat Enterprise Linux 7)开始,Red Hat 引入了“可预测的网络接口名称”机制,这意味着网卡名称不再仅仅依赖于物理插槽的顺序,而是基于硬件信息(如 MAC 地址、总线类型、PCI 设备 ID 等)来生成唯一的名称。
常见的命名格式包括:
- en:表示 Ethernet(以太网)
- wl:表示 Wireless(无线)
- ww:表示 WWAN(广域网)
后面的数字则代表具体的硬件信息。ens33 通常表示:
- e:以太网
- n:内置网卡
- s33:PCI Express 端口 33
这种机制的好处是网卡名称非常稳定,即使你添加了一块新网卡,旧网卡的名称也不会轻易改变,避免了因重插拔硬件导致的网络配置混乱。
如何将 ens33 改回 eth0?
虽然 ens33 是更标准的命名方式,但很多运维人员或开发者更习惯使用 eth0,如果你希望将 CentOS 7 的网卡名改回 eth0,可以通过以下两种主要方法实现。
修改配置文件(推荐)
这种方法需要修改两个文件:网卡的配置文件和 udev 规则文件。
修改网卡配置文件
默认的网卡配置文件位于 /etc/sysconfig/network-scripts/ 目录下,文件名通常为 ifcfg-ens33。
打开文件:
vi /etc/sysconfig/network-scripts/ifcfg-ens33
将文件中的以下两行修改为:
DEVICE=eth0 NAME=eth0
(同时确保 BOOTPROTO、ONBOOT 等其他参数保持不变)
修改 udev 规则文件
CentOS 7 会根据 /etc/udev/rules.d/70-persistent-net.rules 文件来决定网卡的最终名称。
打开该文件:
vi /etc/udev/rules.d/70-persistent-net.rules
你会看到类似下面的内容,其中包含了网卡的 MAC 地址:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:xx:xx:xx", NAME="ens33"
请记下你网卡的 MAC 地址,并将 `

