/etc/network/interfaces 文件中提到的接口 IP 详细信息,但重新启动服务器会使接口分配一些随机 IP

/etc/network/interfaces 文件中提到的接口 IP 详细信息,但重新启动服务器会使接口分配一些随机 IP

在尝试使用静态 IP 设置 eth3 时,以下是我的操作和观察结果。

行动1

Step1)编辑/etc/network/interfaces文件,内容如下

#This file describes the network interfaces available on your system and how to activate them. For more information, see interfaces(5)

#The loopback network interface
auto lo
iface lo inet loopback

#manual ip set for eth3
auto eth3
allow-hotplug eth3
iface eth3 inet static
address x.x.x.x
netmask 255.255.255.0

步骤2)运行systemctl restartnetworking.service

步骤3)重启服务器

观察1

xxxx ip 在 eth2 中设置,eth3 被设置为随机 ip 然后,如果我重新启动网络服务,eth3 也会被设置为 xxxx ip,如 /etc/network/interfaces 文件中定义的那样,所以 2 个不同的接口被设置为相同的IP

行动2

步骤 1) 现在删除 /etc/ 中存在的 NetworkManager 文件夹 步骤 2) 重新启动服务器

观察2

eth3 仍然分配有除 xxxx 之外的随机 ip,并且 eth2 中现在没有分配 ip。当我现在重新启动networking.service时,eth3被分配了/etc/network/interfaces文件中定义的xxxx IP,而eth2没有分配任何IP地址。

因此,当我重新启动服务器时,它会从其他参考中获取 ip 值,并且在重新启动 network.service 后,它会获取 /etc/network/interfaces 文件中给定的值。

如何限制随机 IP 分配给接口文件中静态定义的接口?

答案1

建议及说明:

Linux 几年前就开始开发基于旧的缓慢脚本的服务管理的解决方案。 “systemd”更快更智能,允许并行服务启动......简而言之改进的开始替换旧的基于脚本的系统。今天,在 Debian 11 中,网络系统是“systemd-networkd”。旧的网络配置脚本已转换为 systend-networkd。systemd 的开发和更新翻译器在过去已经陷入困境。为了避免翻译问题,我建议放弃使用旧配置并直接开始使用新的基于 systemd 的配置。

修复网络的步骤:

1)使用以下命令检查网络配置的状态:

networkctl -a status

2)通过重命名旧的 ifupdown 系统来删除它的配置:

mv /etc/network/interfaces  /etc/network/interfaces.save

3)启用新的 systemd 配置:

systemctl enable systemd-networkd

4)为 systemd-networkd 创建新的配置文件:

/etc/systemd/network/1-eth1.network
/etc/systemd/network/1-eth3.network

systemd-networkd 的语法与接口中的语法不同。例子:

[Match]
Name=eth3

[Network]
Address=x.x.x.x/24

现在重新启动服务器并检查 eth3 是否符合预期。您可能需要为系统中的其他网络创建配置。开始阅读有关 systemd-networkd 配置语法的内容。

https://manpages.debian.org/testing/systemd/systemd.network.5.en.html

https://wiki.archlinux.org/title/systemd-networkd

相关内容