我正在配置一个小型服务器安装,该安装已安装在外部硬盘上,并且我希望能够不时在(真实和虚拟)机器之间移动它。
当我第一次尝试将安装移至另一台计算机时,网络设备没有自动配置。我发现这是因为该设备上的网络接口名称不同,因此条目/etc/network/interfaces
不适用于它。
有没有一个好的方法可以告诉 Ubuntu 服务器它应该在启动时自动配置所有连接的网络设备?
可能的选择:
我当前的解决方法是使用内核启动参数
net.ifnames=0
禁用可预测的网络接口名称,以便第一个网络接口在两台机器上都显示为老式的,eth0
并且只需将 中的条目更改/etc/network/interfaces
为引用eth0
。我还考虑过使用 NetworkManager,据我所知,它可以设置为执行这种无条件自动配置,并且具有适合服务器的基于文本的管理界面。这种方法唯一的问题是,它的依赖项会引入大量 X11 和 GNOME 库(在我的系统上占 291 MB),这感觉有点过头了。
编写一个小脚本在启动时运行,该脚本将获取找到的设备
/sys/class/net
并输出文件以/etc/network/interfaces.d
对其进行配置。如果这是一个不错的选择,那么在何时何地运行该脚本比较合适?有什么很棒的事情我还没想过?*手指交叉*
答案1
我不太愿意说在启动时运行脚本是解决这个问题的最佳方法,但如果这就是你正在考虑的,那么你会想把它放在 中/etc/rc.local
。我之前遇到过网络配置失败的问题,你可以把那些网络命令放在 中,/etc/rc.local
在启动时运行并为你配置。