![正确禁用 Xenial 上的可预测接口命名](https://linux22.com/image/1087848/%E6%AD%A3%E7%A1%AE%E7%A6%81%E7%94%A8%20Xenial%20%E4%B8%8A%E7%9A%84%E5%8F%AF%E9%A2%84%E6%B5%8B%E6%8E%A5%E5%8F%A3%E5%91%BD%E5%90%8D.png)
我在 Openstack 私有云上运行了几个 Ubuntu Xenial 实例,遇到了可预测的网络接口命名问题。我尝试通过在GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
中设置来禁用它/etc/default/grub
。重新启动后,第一个网络接口仍具有其旧的“可预测”名称 ( ens3
),但第二个接口具有其旧名称 ( eth1
)。
dmesg
有[ 1.403328] virtio_net virtio0 ens3: renamed from eth0
如何配置 Ubuntu 以便我的第一个网络接口被命名eth0
?
答案1
我认为更清洁的解决方案是:
sudo ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules
然后重新启动。这将恢复旧的接口命名。
如果你想分配特定的网络接口名称,并且你拥有持久的 mac 地址,那么你可以遵循 heynnema 的解决方案或使用systemd.link。
答案2
编辑 /etc/udev/rules.d/70-persistent-net.rules。格式非常简单。每个接口只有一行,只需复制/粘贴现有行,然后更改 mac 地址和设备名称。
条目如下所示:
# PCI device 0x10ec:0x8168 (r8169)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="20:1a:06:d8:65:ae", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"