温馨提示×

centos为啥替换网卡名称

小樊
32
2026-09-18 09:59:34
栏目: 智能运维

CentOS(尤其是 CentOS 7 及以后) 中“替换/修改网卡名称”,本质上是 系统对网卡命名规则的变更,而不是随便改的。主要原因有以下几类:


一、CentOS 默认网卡命名方式变了(核心原因)

1️⃣ CentOS 6 及以前

使用 传统命名

  • eth0eth1eth2

缺点:

  • 网卡顺序依赖 内核加载顺序
  • 插拔网卡、换主板、加网卡后,名称可能变
  • 多网卡环境容易混乱

2️⃣ CentOS 7 / 8 / Stream

采用 systemd 的可预测网卡命名(Predictable Network Interface Names)

命名规则如:

  • ens192
  • enp3s0
  • eno1
  • em1

依据:

  • 网卡总线位置
  • PCI 槽位
  • 固件信息

✅ 优点:

  • 网卡名 稳定不变
  • 换系统、换插槽也不会乱

二、为什么会“看起来像被替换了”

常见情况:

✅ 情况 1:系统升级

  • CentOS 6 → 7
  • eth0 变成 ens192

✅ 情况 2:更换硬件

  • 主板 / 网卡变化
  • 系统重新识别 → 新名称

✅ 情况 3:克隆虚拟机

  • eth0 被占用
  • 新网卡变成 eth1ens224

三、主动“替换网卡名称”的常见原因

很多人会 手动改回 eth0,原因包括:

✅ 1. 脚本兼容

  • 老脚本写死 eth0
  • 运维习惯

✅ 2. 自动化工具要求

  • Ansible / Salt / 老 Puppet
  • 某些商业软件

✅ 3. 多网卡环境更好记

  • eth0 = 内网
  • eth1 = 外网

四、如何“替换/固定”网卡名称(常见做法)

方法 1:改回 eth0(关闭可预测命名)

# 修改 grub
vi /etc/default/grub

添加:

net.ifnames=0 biosdevname=0

然后:

grub2-mkconfig -o /boot/grub2/grub.cfg
reboot

方法 2:使用 udev 规则绑定(推荐)

vi /etc/udev/rules.d/70-persistent-net.rules

示例:

SUBSYSTEM=="net", ACTION=="add",
ATTR{address}=="00:0c:29:xx:xx:xx",
NAME="eth0"

五、总结一句话

CentOS 替换网卡名称,是为了让网卡名更稳定、可预测;
你看到的“替换”,要么是系统默认规则变了,要么是人为主动改的。

如果你愿意,可以告诉我:

  • CentOS 版本
  • 是物理机 / 虚拟机
  • 想改成什么名字

我可以直接给你一套最合适方案

0