让 Ubuntu 服务器在启动时自动配置所有网络设备的最佳方法是什么

让 Ubuntu 服务器在启动时自动配置所有网络设备的最佳方法是什么

我正在配置一个小型服务器安装,该安装已安装在外部硬盘上,并且我希望能够不时在(真实和虚拟)机器之间移动它。

当我第一次尝试将安装移至另一台计算机时,网络设备没有自动配置。我发现这是因为该设备上的网络接口名称不同,因此条目/etc/network/interfaces不适用于它。

有没有一个好的方法可以告诉 Ubuntu 服务器它应该在启动时自动配置所有连接的网络设备?

可能的选择:

  1. 我当前的解决方法是使用内核启动参数net.ifnames=0禁用可预测的网络接口名称,以便第一个网络接口在两台机器上都显示为老式的,eth0并且只需将 中的条目更改/etc/network/interfaces为引用eth0

  2. 我还考虑过使用 NetworkManager,据我所知,它可以设置为执行这种无条件自动配置,并且具有适合服务器的基于文本的管理界面。这种方法唯一的问题是,它的依赖项会引入大量 X11 和 GNOME 库(在我的系统上占 291 MB),这感觉有点过头了。

  3. 编写一个小脚本在启动时运行,该脚本将获取找到的设备/sys/class/net并输出文件以/etc/network/interfaces.d对其进行配置。如果这是一个不错的选择,那么在何时何地运行该脚本比较合适?

  4. 有什么很棒的事情我还没想过?*手指交叉*

答案1

我不太愿意说在启动时运行脚本是解决这个问题的最佳方法,但如果这就是你正在考虑的,那么你会想把它放在 中/etc/rc.local。我之前遇到过网络配置失败的问题,你可以把那些网络命令放在 中,/etc/rc.local在启动时运行并为你配置。

相关内容