为什么Linux中网络接口的命名约定发生了变化?

Vol*_*eve 13 networking linux

我记得不久前,接口是由 eth0、eth1、wlan0 等标识的。

现在我正在查找接口名称,如 enp0s3、enp0s8 等。

在我刚才在这里问的另一个问题中,有人提到新格式是:

“以太网网络外设#串行#”

这让我想知道:

1.Why did it change?
2.When did it change?
3.What does the first number signify?
4.Why does the 's' stand for serial, why is that in the interface name?
5.What does the second number signify?
Run Code Online (Sandbox Code Playgroud)

我在谷歌上搜索了答案,但没有找到任何涵盖从旧命名系统到新命名系统过渡的内容。

Dre*_*pin 12

为什么变了

内核应用的网络接口的经典命名方案是简单地将名称以“eth0”、“eth1”等开头,分配给驱动程序探测到的所有接口。由于现代技术通常无法预测驱动程序探测,这意味着一旦多个网络接口可用,名称“eth0”、“eth1”等的分配通常不再固定,并且很可能会发生“一次启动时的 eth0” 在下一次启动时变成了“eth1”。这可能具有严重的安全隐患,例如在为某些命名方案编码的防火墙规则中,因此对不可预测的更改名称非常敏感。

http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/

当它改变

取决于您使用的发行版。它从 v197systemd开始。因此,任何使用该版本或更高版本的发行版很可能会使用此命名约定。

字母和数字是什么意思

我找不到任何验证这一点,但我相信p代表物理外设,以及s代表插槽。该en代表é疗法ñ等。这只是我从上面的链接中收集到的信息,但没有明确说明这一点。我也无法在 Google 上找到任何内容。

  • 小写的 `p` 不代表物理 * 或 * 外设,它表示下一个数字是设备连接到的 pci 总线的索引。 (3认同)