为什么我的以太网接口称为enp0s10而不是eth0?


65

当我运行时ifconfig -a,我只会得到loenp0s10接口,而不是经典的eth0

enp0s10是什么意思?为什么没有eth0


5
ifconfig不推荐使用。想想移动到ipiproute2快。
solsTiCe 2015年

1
正如答案所说,这是systemd的变化。要获得支持,请eth0使用kernel选项net.ifnames=0 biosdevname=0(请参阅此线程)。ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rule在下面的答案中使用在Debian 10(Buster)中
不起作用

Answers:


56

这是udevd现在为以太网设备分配名称的方式的变化。现在,您的设备使用“可预测的接口名称”,该名称基于(并引用源):

  1. 包含固件/ BIOS的名称为板载设备提供了索引号(例如:eno1)
  2. 包含固件/ BIOS的名称提供的PCI Express热插拔插槽索引号(例如:ens1)
  3. 包含硬件连接器的物理/地理位置的名称(例如:enp2s0)
  4. 包含接口的MAC地址的名称(例如:enx78e7d1ea46da)
  5. 经典的,不可预测的内核原生ethX命名(例如:eth0)

系统化的freedesktop.org页中记录了此更改的原因以及禁用此更改的方法:

ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules

或者,如果您使用旧版本:

ln -s /dev/null /etc/udev/rules.d/80-net-name-slot.rules

7
通过freedesktop,org链接,主要要点是:The classic naming scheme for network interfaces applied by the kernel is to simply assign names beginning with "eth" to all interfaces as they are probed by the drivers. As the driver probing is generally not predictable for modern technology this means that as soon as multiple network interfaces are available the assignment of the names is generally not fixed anymore and it might very well happen that "eth0" on one boot ends up being "eth1" on the next. This can have serious security implications...
lepe

86

回答“ enp0s10是什么意思?” 题:

enp0s10:
| | |
v | |
en| |   --> ethernet
  v |
  p0|   --> bus number (0)
    v
    s10 --> slot number (10)

来源:GitHub上的udev-builtin-net_id.c


6
来找这个。
2017年

4
由于...fNNIC名称的末尾没有任何部分,因此我们可以推断出函数编号为0。将数字转换为十六进制(十六进制为10 =“ a”)后,我们知道这enp0s10意味着PCI设备ID 00:0a.0
telcoM
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.