告别 eth0,你好 ens33,详解 CentOS 7 网络接口命名规则

admin
CentOS 7 默认采用基于硬件的 ens33 等命名方式,取代了传统的 eth0,本文详细解析了这一新规则背后的机制,包括 biosdevname、MAC 地址及 PCI 路径等,文章还介绍了如何通过修改 grub 配置来恢复 eth0 命名,帮助用户快速适应 CentOS 7 的网络配置变化。

在之前的 CentOS 6 或更早版本中,当我们使用 ip addrifconfig 查看网络状态时,第一块网卡通常被命名为 eth0,第二块为 eth1,以此类推,这种命名方式简单直观,但也存在一个问题:如果服务器硬件发生变化,或者添加了新网卡,网卡的顺序可能会发生改变,导致配置文件失效。

CentOS 7 中,情况发生了变化,很多用户在安装或配置系统后发现,网卡名称不再是熟悉的 eth0,而是变成了 ens33,这不仅让习惯了旧版本的用户感到困惑,也导致在修改网卡配置时出现了路径错误。

本文将深入解析 CentOS 7 网卡命名规则的变化,并提供几种将 ens33 改回 eth0 的解决方案。

告别 eth0,你好 ens33,详解 CentOS 7 网络接口命名规则

为什么 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

(同时确保 BOOTPROTOONBOOT 等其他参数保持不变)

修改 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 地址,并将 `

文章版权声明:除非注明,否则均为xmsdn原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码