在早期 Linux 系统中,网卡通常使用 eth0、eth1、eth2 等名称。但在现代 Linux 发行版(包括 银河麒麟 V10 服务器操作系统)中,我们会看到类似:
ens33
enp0s3
eno1这样的网卡名称。很多运维工程师在第一次接触国产化系统时都会产生疑问:
为什么不再使用 eth0,而是使用 ens33、enp0s3 这样的名字?
本文将从 Linux 历史、命名规则、技术实现以及在银河麒麟中的应用 等方面,系统讲解 网卡命名规则的由来。
一、传统 Linux 网卡命名方式
在早期 Linux 系统中,网卡命名规则非常简单:
查看网卡:
ifconfig示例:
eth0
eth1
lo
这种命名方式存在一个明显的问题:
网卡顺序不稳定
系统在启动时根据 驱动加载顺序 分配网卡编号,因此可能出现:
第一次启动
eth0 → 第一块网卡第二次启动
eth0 → 第二块网卡
特别是在以下场景:
多网卡服务器
虚拟化环境
PCI 插槽变化
网卡增加或更换
就会导致 IP 地址错配、网络不可用等问题。
二、Predictable Network Interface Names 的出现
为了解决网卡命名不稳定的问题,Linux 社区提出了:
Predictable Network Interface Names(可预测网络接口名称)
该方案由 systemd / udev 引入,并在主流 Linux 发行版中推广。
新命名方式的核心思想是:
根据硬件拓扑信息(PCI 位置、主板位置等)为网卡命名。
这样就保证:
每次启动网卡名称一致
与硬件位置绑定
不受驱动加载顺序影响
三、现代 Linux 网卡命名规则
现代 Linux 网卡名称通常以 en、wl、ww 开头。
银河麒麟 V10 服务器系统中最常见的是:
en*四、常见网卡名称解析
4.1 ens33
示例:
ens33含义:
即:
插槽 33 的以太网卡
4.2 eno1
示例:
eno1含义:
即:
主板板载网卡
4.3 enp0s3
示例:
enp0s3含义:
即:
PCI 总线 0 的第 3 插槽网卡
4.4 enp189s0f0
enp189s0f0可以拆分为:
完整含义:
PCI 总线 189、插槽 0、功能号 0 的以太网网卡
4口服务器网卡
可能出现:
enp3s0f0
enp3s0f1
enp3s0f2
enp3s0f3说明:
同一 PCI 设备
四个端口
五、银河麒麟 V10 中的网卡命名规则
银河麒麟 V10 继承了 Linux 的可预测命名规则,因此在服务器中常见以下网卡名称:

查看网卡:
ip link示例:
1: lo
2: eno1
3: ens33六、为什么银河麒麟采用这种命名方式
采用 Predictable Network Interface Names 的原因主要有:
1 网络设备命名稳定
服务器重启后:
网卡名称不会变化
IP 地址不会错配
2 适合多网卡服务器
企业服务器通常有:
2口网卡
4口网卡
10G / 25G / 100G 网卡
如果仍使用 eth0、eth1:
很容易混乱。
3 适合数据中心环境
例如:
eno1 管理网
ens1f0 业务网
ens1f1 存储网命名更有规律。
七、如何查看网卡硬件信息
查看 PCI 信息
lspci | grep Ethernet示例:
02:00.0 Ethernet controller: Intel Corporation Ethernet Controller
查看网卡详细信息
ethtool ens33
看网卡与 PCI 对应关系
udevadm info /sys/class/net/ens33

八、是否可以恢复 eth0 命名
如果不习惯新的命名方式,可以恢复传统命名。
修改 GRUB:
vim /etc/default/grub添加:
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"更新 GRUB:
grub2-mkconfig -o /boot/grub2/grub.cfg
重启系统。
网卡会恢复:
eth0
eth1
但在服务器环境 不建议这样做。
九、网卡命名规则总结
核心原则:
通过硬件拓扑实现可预测命名。
十、总结
银河麒麟 V10 服务器操作系统采用 Linux Predictable Network Interface Names 机制,为网卡提供稳定、可预测的命名规则。
相比传统 eth0 命名方式,新规则具有以下优势:
启动顺序不影响网卡名称
与硬件拓扑绑定
适合多网卡服务器
更适合数据中心环境
对于运维工程师来说,理解这些命名规则,可以更好地进行:
网络配置
路由规划
端口聚合
高可用部署