Linux的网口名字的命名规则

本文详细解释了Linux系统中网卡接口名称的命名规则,由systemd和udev控制,遵循ID_NET_NAME的五级优先顺序:自定义udev、板载网卡、可热插拔、PCI插槽和MAC地址。
摘要由CSDN通过智能技术生成

在工作中,偶尔看到有些机器的网口名字是以ethX命令,有些则以enpXsX这种名字命名。网上的资料说的都不太明白,资料也无据可查,很难让人信服。于是决定自己查了下官方的资料和源码,把这些搞清楚。

官方文档:PredictableNetworkInterfaceNames

官方文档:systemd.net-naming-scheme

零 写在前面

网卡的名字是由systemd给出来的,在 v197 systemd/udev中,废弃了eth0,eth1这种命名,转而改为以下这几个命名。(原文描述:Starting with v197 systemd/udev will automatically assign predictable, stable network interface names for all local Ethernet, WLAN and WWAN interfaces. This is a departure from the traditional interface naming scheme (“eth0”, “eth1”, “wlan0”, …), but should fix real problems.)

一 linux系统中都包含了哪几种网卡名字?

在这里插入图片描述

三 linux系统是如何给这些规则排优先顺序的?

  • ID_NET_NAME_FROM_DATABASE
  • ID_NET_NAME_ONBOARD
  • ID_NET_NAME_SLOT
  • ID_NET_NAME_PATH
  • ID_NET_NAME_MAC

也就是说:

第一优先:ID_NET_NAME_FROM_DATABASE。你自己在udev里面自定义的网口名字,例如net0这种。

第二优先:ID_NET_NAME_ONBOARD。如果你的主板上又一张网卡是板载的,那么这张网卡的网口名字,会被命名为enoX这种名字。至于Linux为什么能识别到哪个网口是不是板载的网口,其实是根据smbios的type41来的。enoX里面的这个X也是根据smbios的type41里面的Type Instance。可以使用dmideoce -t 41查看是什么网卡类型。
在这里插入图片描述

第三优先:ID_NET_NAME_SLOT。 如果你插入的是一张可热插拔网卡,使用dmidecode -t 41命令,能看到你那张网卡的类型是SLOT类型,此时你的网口名字,会被命名为ensX,例如ens33

第四优先:ID_NET_NAME_PATH。也就是根据bus号,device号,function号来命名。例如:enp2s1

第五优先:ID_NET_NAME_MAC。根据mac地址命名,例如enx000c2984660a。

总结
总的来说,网口名字的规则优先极如下:你自定义udev的名字 > 板载网口eno1 > 可热插拔网口名字ens33 > PCI插槽名字enp2s1 > 网口mac地址名字enx000c2984660a

————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/qq_44845455/article/details/132255501

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值