我正在为小型服务器使用 Debian 最小操作系统。我想要一个具有完整操作系统的存储设备作为备份。因此,如果出现任何问题,我将能够更换硬盘设备。但我安装备份操作系统的硬件与服务器不同。因此,我需要一种为网络接口设置静态IP地址的方法,无论接口硬件类型如何。
我使用了一个环境变量,并在 /etc/network/interfaces 文件中使用它,它适用于 DHPC,但对于静态 IP,它不起作用。这是接口文件:
auto lo
iface lo inet loopback
auto $local_int
iface $local_int inet static
address 192.168.111.250/24
gateway 192.168.111.1
dns-server 8.8.8.8
我使用此命令将接口名称存储在环境变量中:
local_int=$(ls /sys/class/net/ | grep en)
的输出echo $local_int
是ens33
.
答案1
我不知道您是如何设法设置环境变量并使其在您的interfaces
配置中可用的?
然而,依赖于硬件的接口命名(例如ens33
)是一个功能。显然,您可以停用此功能,并返回到旧的简单命名,以便您的接口名称始终为eth0
.当您的接口始终被命名eth0
为独立于硬件时,那么您可以在interfaces
文件中使用它。
就我个人而言,我对旧的命名系统从来没有遇到过问题。但显然,如果您有超过 1 个 NIC,它可能会不稳定,这就是为什么首先实施新的命名功能的原因。但是,如果每台服务器只有 1 个 NIC,那么这应该是安全/稳定的。
我自己没有安装 Debian,所以无法测试它。但是文档似乎没那么复杂:
禁用整个当前接口命名方案的简单方法是使用内核参数 net.ifnames=0 启动 [...]