在 Hetzner 云上使用我的新 Debian 9 时,我注意到一件奇怪的事情。当虚拟机启动时,我可以看到,eth0 接口被重命名为 ens3(我怀疑可预测的网络名称机制发挥了作用)。但在重命名完成后,我可以看到 ens3 接口名称被重命名回 eth0。我在 dmesg 输出中看到这些重命名。
[ 1.471140] virtio_net virtio0 ens3: renamed from eth0
[ 3.212154] virtio_net virtio0 eth0: renamed from ens3
有人可以帮助我找出第二个接口重命名的配置位置吗,因为我无法在任何地方找到此类配置:( 谢谢。
答案1
如果 Debian 9 是从头开始安装的,它会使用新的“可预测网络接口名称”机制。如果它是从早期版本升级的,它仍然使用旧式命名 - 并且该文件/etc/udev/rules.d/70-persistent-net.rules
应该存在。
日志条目中的计时信息表明两次重命名操作之间大约有 1.7 秒的时间。这表明可能有两种机制在起作用:第一行可能systemd-networkd
在 initramfs 中设置新样式名称,然后第二行可能是在安装根文件系统和“真正的”udev(与迷你文件系统相反)时initramfs 中的 -udev)启动。
或者,如果 Hetzner 云的管理员使用不同的工具实现了遗留样式名称,则可能会/etc/rc.local
运行类似的东西nameif -s
,它会/etc/mactab
根据它读取和设置接口名称。
或者,如果 Hetzner 云按照您的评论使用cloud-init
,那么您可能需要检查该/etc/cloud/cloud.cfg.d/custom-networking.cfg
文件是否存在。有关更多详细信息,请参阅:
http://cloudinit.readthedocs.io/en/latest/topics/network-config-format-v1.html
http://cloudinit.readthedocs.io/en/latest/topics/network-config-format-v2.html
cloud-init
可以有许多可能的网络配置信息来源,请参阅:
http://cloudinit.readthedocs.io/en/latest/topics/network-config.html#network-configuration-sources
答案2
我在 OVH 的新 Debian 10 虚拟机上也遇到了同样的问题。这是我必须做的(除了修改/etc/network/interfaces
):
- 消除
/etc/udev/rules.d/70-persistent-net.rules
/etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
添加一个包含内容的文件network: {config: disabled}
(这取自/etc/cloud/cloud.cfg.d/README