在 2002 年的第一次红帽认证工程师 (RHCE) 快速通道培训中,我们使用的是红帽 Linux 7.2,我学会了喜欢 中的网络配置文件。后来,Red Hat Enterprise Linux(RHEL)6推出了NetworkManager(也称为“NM”)。在阅读 RHEL 9 发行说明时,我关注到了对网络配置的更改 /etc/sysconfig/network-scripts

7.3. 网络 Red Hat Enterprise Linux 9 | Red Hat Customer Portal

NetworkManager 以 key-file 格式将新网络配置保存到 /etc/NetworkManager/system-connections/

在以前的版本中,NetworkManager 将新的网络配置以 ifcfg 格式保存到 /etc/sysconfig/network-scripts/。从 RHEL 9.0 开始,RHEL 以 key-file 格式在 /etc/NetworkManager/system-connections/ 中存储新的网络配置。配置以旧格式存储在 /etc/sysconfig/network-scripts/ 中的连接仍然可以正常工作。对现有配置集的修改会继续更新旧的文件。

细节

在 RHEL 9 中,ifcfg (也称为 文件)将不再是网络配置文件的主存储。虽然 ifcfg 样式仍然可用,但它不再是 NetworkManager 存储新网络配置文件的默认位置。让我们看一下:/etc/sysconfig/network-scripts ifcfg

[root@rhel9a ~]# NetworkManager --print-config # NetworkManager configuration: /etc/NetworkManager/NetworkManager.conf [main] # plugins=keyfile,ifcfg-rh [...] [root@rhel9a ~]#

这是指不同的存储位置,如“keyfile”和“ifcfg-rh”。它首先查找keyfile文件,然后查找 ifcfg-rh 文件。您可以在 NetworkManager 文档和 RHEL 9 文档中找到有关关键文件的详细信息。NetworkManager 在各个位置查找关键文件,但本文重点介绍 中的文件。/etc/NetworkManager/system-connections

使用默认配置,您可以在 /etc/sysconfig/network-scripts 中继续使用 ifcfg-rh 文件,但您需要注意:

虽然 ifcfg- 和 key 文件格式不具有相同的语法,但它们主要表示有关接口配置的类似数据。以下是两种格式的比较:

redhatlinux分辨率配置文件(红帽博客RHEL9的网络配置)(1)

如何更改界面设置

无论您是决定继续使用ifcfg-rh文件(尽管不推荐)还是使用keyfiles文件,您都可以通过以下任一方式更改界面设置(如IP):

nmcli con mod enp2s0 ipv4.addr "10.0.0.4/24" nmcli con down enp2s0 nmcli con up enp2s0

vi /etc/NetworkManager/system-connections/<name>.nmconnection nmcli connection load \ /etc/NetworkManager/system-connections/<name>.nmconnection nmcli connection up filename \ /etc/NetworkManager/system-connections/<name>.nmconnection

“nmcli connection load [..]”命令将只重新加载一个特定的 NetworkManager 配置文件;或者,您可以使用命令“nmcli connection reload”来重新加载所有配置文件,或者使用“nmcli general reload”命令来重新加载设置;这的行为就像网络管理器的信号挂断(SIGHUP)。

ifcfg-rh 发生了什么变化?

从历史上看,各种Linux发行版已经将界面配置分散到许多地方:Debian及其衍生产品传统上使用,CentOS和相关发行版使用,等等。随着越来越多的发行版采用NetworkManager,keyfiles 已经成为Linux上网络连接的规范位置。/etc/network/interfaces、/etc/sysconfig/network-scripts、/etc/NetworkManager/system-connections

这个变化落在了 Fedora 33 中,现在它在 RHEL 9 中。RHEL的新主要版本(如RHEL 9)是可以实现像这样的重大更改的地方,这些更改可能会破坏现有的脚本和工作流。由于 RHEL 目前的计划是提供 10 年的次要版本,因此熟悉此更改并开始将其合并到代码中是明智的。

https://www.redhat.com/en/blog/rhel-9-networking-say-goodbye-ifcfg-files-and-hello-keyfiles

,