linux网卡命名规则
在 Linux 系统中,网卡命名规则经历了多个阶段的发展,主要包括传统命名规则、基于固件或 BIOS 提供的信息命名规则、基于设备物理位置命名规则和可预测网络接口命名规则
1、命名规则介绍:
传统命名规则
在较旧的 Linux 系统中,采用传统的命名规则,网卡设备名由前缀和数字组成,前缀用于标识网卡类型:
ethX:以太网网卡,X 是从 0 开始递增的数字。例如,第一块以太网网卡通常命名为 eth0,第二块为 eth1 ,依此类推。这种命名方式简单直接,但存在一个问题,当网卡插拔顺序改变或者系统启动时检测到网卡的顺序不同,网卡的编号可能会发生变化,导致配置文件中的网卡名称与实际网卡不匹配。
如图显示的是传统命名规则
基于固件或 BIOS 提供的信息命名规则
enX:对于以太网网卡,如果固件或 BIOS 提供了特定的设备信息,网卡名称会以 en 开头。例如,ensX 表示网卡使用的是 PCI Express 热插拔插槽(s 代表 slot);enoX 表示网卡使用的是板载设备(o 代表 on-board)。
基于设备物理位置命名规则
enpXsY:这种命名规则基于网卡所在的 PCI 总线和插槽位置。p 后面的数字 X 表示 PCI 总线编号,s 后面的数字 Y 表示插槽编号。例如,enp2s0 表示该网卡位于第 2 条 PCI 总线上的第 0 个插槽。
enxMAC:网卡名称以 enx 开头,后面跟随网卡的 MAC 地址。这种命名方式确保了网卡名称的唯一性,即使网卡的物理位置发生变化,只要 MAC 地址不变,名称就不会改变。
可预测网络接口命名规则
从 systemd 引入后,Linux 系统开始采用可预测网络接口命名规则,其目的是为了让网卡命名更加稳定和可预测。可预测网络接口命名规则综合了上述几种规则,命名规则如下:
若 BIOS 或固件提供了合适的名称,则优先使用这些名称。
否则,根据设备的物理位置或拓扑结构进行命名。
如果以上方法都不可行,则使用传统的命名方式。
如图显示的是可预测接口命名,其中em1-em2为板载网卡,p4p1-p4p4,p4p1-p4p5为可插拔网卡
二、查看和修改命名规则
查看网卡名称:可以使用 ip addr 或 ifconfig(部分系统需要额外安装)命令查看当前系统中网卡的名称。
修改命名规则:若要使用传统命名规则,可以通过修改内核参数来实现。在 /etc/default/grub 文件中找到 GRUB_CMDLINE_LINUX 行,添加 net.ifnames=0 biosdevname=0 参数,然后更新 GRUB 配置:
sudo update-grub
重启系统后,网卡将使用传统命名规则。
补充:
从以上两张截图看到,不管grub是否添加net.ifnames=0 biosdevname=0参数,网卡的mac地址显示顺序总是乱的,板载网卡mac和可插拔式网卡mac总是乱序的。还是存在问题的
文档内容主要由ai生成
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义