从 18.04 升级到 20.04 后,我发现所有网络接口名称都发生了变化。为什么?我如何才能将它们改回原始名称,而不必编辑 netplan 文件来强制使用名称。
答案1
为什么
它被称为可预测的网络接口名称。
来自链接:
内核应用的网络接口的经典命名方案是简单地为所有接口分配以“eth0”、“eth1”等开头的名称,因为驱动程序会探测这些接口。由于驱动程序探测对于现代技术来说通常是不可预测的,这意味着一旦有多个网络接口可用,名称“eth0”、“eth1”等的分配通常就不再固定,并且很可能会发生一次启动时的“eth0”在下一次启动时变成“eth1”。这可能会带来严重的安全隐患,例如在为某些命名方案编码的防火墙规则中,这些规则对不可预测的名称更改非常敏感。
以及如何才能将它们改回原来的名称,而不必编辑 netplan 文件来强制使用名称。
我建议不要这么做。这种命名是可以预见的 :-) 旧命名有缺陷,如果某个网络名称比类似类型的网卡慢,可能会弄乱网络名称。
但你可以。另见以下链接:
我不喜欢这个,我该如何禁用它?
你基本上有三个选择:
您禁用固定名称的分配,以便再次使用不可预测的内核名称。为此,只需屏蔽 udev 的 .link 文件以使用默认策略:
ln -s /dev/null /etc/systemd/network/99-default.link
您可以创建自己的手动命名方案,例如,将接口命名为“internet0”、“dmz0”或“lan0”。为此,请在 `/etc/systemd/network/ 中创建自己的 .link 文件,为一个、一些或所有接口选择一个明确的名称或更好的命名方案。有关更多信息,请参阅 systemd.link(5)。
net.ifnames=0
你在内核命令行上传递
答案2
发现从 20.04 升级到 22.04 后,所有接口名称都恢复了。这就是我所寻找的如何使接口名称不变。
我认为问题是由于从 18.04 升级到 20.04 期间 lxd 的 SNAP 安装失败。(回复:主目录位置。找到更多信息这里)
我认为修复该问题后重新启动即可解决问题。但我最终升级到最新版本,这无论如何都需要重新启动。