CentOS 7 网卡名为什么不是 eth0?揭秘可预测网络接口名称的由来及恢复方法

admin
CentOS 7 默认采用基于硬件地址的可预测网络接口名称(如 ens33),而非传统的 eth0,这一机制旨在解决设备变更导致名称不稳定的问题,若需恢复为 eth0,需编辑 grub 配置文件,添加 net.ifnames=0 和 biosdevname=0 内核参数,更新 grub 并重启系统。

很多习惯使用 CentOS 6 或更早版本运维人员,在初次接触 CentOS 7 时都会遇到一个困惑:为什么我的网卡名字变成了 ens33enp0s3,而不是熟悉的 eth0

使用 ip addrifconfig 命令查看时,你会发现网卡名称发生了巨大的变化,这并非安装过程出错,而是 CentOS 7 在底层网络配置策略上做出了重大调整,本文将为你详细解析这一变化的根本原因,并提供恢复旧版命名习惯的方法。

根本原因:可预测的网络接口名称

在 CentOS 6 及以前,网卡命名通常是固定的(如 eth0eth1)或基于硬件的(如 em1),这种命名方式在早期硬件较少时是可行的,但随着硬件技术的发展,它暴露出了两个严重的问题:

CentOS 7 网卡名为什么不是 eth0?揭秘可预测网络接口名称的由来及恢复方法

  1. 硬件变更导致名称漂移: 如果两块网卡被插入不同的 PCI 插槽,它们的名字可能会在 eth0eth1 之间互换,导致脚本和配置文件失效。
  2. 无法反映物理拓扑: 旧命名方式无法区分网卡是插在主板上的,还是插在 PCI 扩展卡上的。

为了解决这些问题,Red Hat 在推出 RHEL 7(CentOS 7 基于 RHEL 7)时,引入了 “可预测的网络接口名称” 机制,这种机制通过读取系统的硬件信息(如 PCI 总线、主板插槽、MAC 地址等)来生成一个固定且具有描述性的名字。

新版命名规则详解

在 CentOS 7 中,默认的网卡命名规则通常遵循以下格式:

  • en:表示以太网接口。
  • wl:表示无线局域网接口。
  • ww:表示无线广域网接口。

后面的字符组合则代表了硬件的拓扑结构:

  • p:PCI 总线号。
  • s:插槽号。
  • x:网络接口序号(数字)。

举例说明:

  • ens33:表示这是连接在 PCI 总线 0、插槽 33 上的以太网接口。
  • enp0s3:表示这是连接在 PCI 总线 0、插槽 3 上的以太网接口。
  • ens18f0:表示这是连接在 PCI 总线 1、插槽 18、函数 0 上的以太网接口。

这种命名方式虽然看起来长且复杂,但它能确保即使你更改了机箱内网卡的物理位置,只要总线号不变,名字就不会变,极大地提高了网络配置的稳定性。

如何恢复为 eth0?

虽然新命名方式更科学,但对于习惯了旧习惯的用户来说,修改配置文件会比较麻烦,如果你希望将 CentOS 7 的网卡名恢复为传统的 eth0,可以通过修改内核启动参数来实现。

请按照以下步骤操作:

编辑 GRUB 配置文件 使用 vi 或其他编辑器打开 /etc/default/grub 文件:

vi /etc/default/grub

修改 GRUB_CMDLINE_LINUX 参数 找到 GRUB_CMDLINE_LINUX 这一行,在引号内添加 net.ifnames=0 biosdevname=0 参数,修改后的内容应类似如下:

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

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