我有一台家用无头服务器,它从可移动 USB 记忆棒启动(并具有根文件系统)。我从我的笔记本电脑安装它(如下不错的清单)并根据需要编辑配置文件。理想情况下,我希望能够在 USB 记忆棒插入我的笔记本电脑时完全配置系统,这样一旦我将其插入服务器,它将直接启动到多用户级别,并启动网络并运行 SSH 守护进程。我想要的网络配置非常简单:它有一个集成的 MOBO NIC,我想静态配置它。
我发现的主要问题是我不(可靠地)知道我的网卡将被分配什么接口名称。到目前为止,盲目使用eth0
in/etc/network/interfaces
已经完成了这项工作,但是上次我重新安装时它切换到了可预测的网络接口名称方案,我不得不拖着显示器和键盘在本地登录并对系统进行故障排除。
那么我怎样才能避免自己以后遭受这样的痛苦呢?
答案1
我认为最简单、实用的解决方案是恢复经典行为。
- 在 USB 记忆棒的引导加载程序配置中(例如,在 grub2 配置中),将参数添加
net.ifnames=0
到内核命令行。 - 继续使用
eth0
在/etc/network/interfaces
.
鉴于您所描述的情况以及您对保持事情简单化的重视,这似乎是合适的。请注意,如果您过于仓促更新/升级ifupdown
,可能会被弃用,并且您会发现/etc/network/interfaces
将来会停止工作。
答案2
如果您是现代主义者,则可以改用 usingsystemd-networkd
而不是通常的静态配置方法。看man systemd.network
;基本思想是删除/etc/network/interfaces
并创建,/etc/systemd/network/static.network
就像
[Network]
Address=1.2.3.4/26
Gateway=1.2.3.3
systemctl enable systemd-networkd
也不要忘记。
答案3
可预测的网络接口命名方案正是为了解决接口在不同时间获得不同名称的问题。这意味着通过此更改,您的问题应该消失(直到 systemd 中接口命名的下一次更改)