![如何在 Debian 中设置静态 IP 地址而不考虑接口硬件?](https://linux22.com/image/205205/%E5%A6%82%E4%BD%95%E5%9C%A8%20Debian%20%E4%B8%AD%E8%AE%BE%E7%BD%AE%E9%9D%99%E6%80%81%20IP%20%E5%9C%B0%E5%9D%80%E8%80%8C%E4%B8%8D%E8%80%83%E8%99%91%E6%8E%A5%E5%8F%A3%E7%A1%AC%E4%BB%B6%EF%BC%9F.png)
我正在为小型服务器使用 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 启动 [...]