在尝试使用静态 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