Board logo

标题: Linux en网卡命名规则 [打印本页]

作者: linda    时间: 2026-6-2 15:32     标题: Linux en网卡命名规则

Linux 现代网卡名称(eno、ens、enp 等)遵循 systemd/udev 的“可预测网络接口命名”(Predictable Network Interface Names)规则。 这套规则从 systemd 197 版本开始默认启用,目的是让网卡名称稳定、可预测,不再像老的 eth0、eth1 那样因硬件增删或探测顺序而随意变化。


命名规律(前缀含义)所有名称都以 en 开头(en = Ethernet 有线网卡)。后面字母表示命名依据的优先级和类型(按优先级从高到低匹配):
前缀 全称/含义 说明 示例 常见场景
eno Onboard 主板板载网卡(BIOS/firmware 提供的板载索引号) eno1, eno2 服务器/主板集成网口
ens Slot PCI Express 热插拔槽索引(BIOS 提供的 slot 号) ens3, ens5 有 slot 编号的扩展卡
enp Position / Path 物理位置(PCI 总线 + 槽位信息) enp2s0, enp0s3f1 独立 PCI-e 网卡、最常见
enx MAC address 基于网卡 MAC 地址生成(通常 USB 网卡或无其他信息时) enx78e7d1ea46da USB 网卡、某些扩展设备
end DeviceTree 嵌入式系统 DeviceTree 索引(较少见) end0 ARM 等嵌入式设备
eth 传统命名 回退方案(老式不可预测命名) eth0 禁用可预测命名时

详细拆解示例(enpXsYfZ)enp2s0:PCI 总线 2、槽位 0
enp3s0f1:PCI 总线 3、槽位 0、功能(function)1(多端口网卡的第二个口)
enp0s3:常见于虚拟机(如 VMware/Proxmox 中的虚拟网卡)

命名优先级顺序(udev 按此顺序尝试,第一个匹配的就用):onboard(eno)
slot(ens)
path(enp)
MAC(enx)
传统 ethX

为什么引入这套规则?老的 eth0 会因为添加/移除网卡、BIOS 设置、PCI 顺序而改变,导致配置失效。
新规则基于硬件物理位置,换网卡或重启后名称通常不变。

常见操作命令bash

# 查看当前网卡及命名信息
ip link show
ip addr

# 查看详细硬件对应关系
sudo lshw -C network
lspci | grep -i ethernet

想改回 eth0 命名?(不推荐生产环境)

# 编辑 GRUB
sudo vim /etc/default/grub
# 添加:GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
sudo update-grub && reboot




欢迎光临 中神通公司交流论坛 (http://www.trustcomputing.com.cn/bbs/) Powered by Discuz! 6.0.0