【网络】/etc/sysconfig/network-scripts/下没有网口文件|network与NetworkManager差别
RHEL 9 告别network.service 拥抱NetworkManager (/etc/sysconfig/network-scripts/下没有网口文件的原因)
CentOS7用nmcli和nmtui配置网络IP地址,默认是生成network的配置文件,在network-scripts文件夹下
network与NetworkManager区别
RHEL7 /CentOS 7 以上的版本中默认的网络服务由 NetworkManager 提供(简称NM),这是动态控制及配置网络的守护进程,它用于保持当前网络设备及连接处于工作状态,同时也支持传统的 ifcfg 类型的配置文件。
NetworkManager 可以配置网络别名,IP 地址,静态路由,DNS,VPN连接以及很多其它的特殊参数。可以用命令行工具 nmcli 来控制 NetworkManager。nmcli的功能要比 ifconfig 强大、复杂的多。
nmcli是命令行的NetworkManager工具,自动把配置写到/etc/NetworkManager/system-connections/目录下面。RHEL7 与 CentOS 7之前的网络管理是通过 ifcfg 文件配置管理接口(device),而现在是通过NetworkManager服务管理连接(connection)。
一个接口(device)可以有多个连接(connection),但是同时只允许一个连接(connection)处于激活(active)状态。但有一个问题,重启服务器后默认激活那个连接,我没查到相关的资料,如果是服务器建议一个网口对于一个连接。
简单理解就是,一个连接就是(connection)就是/etc/NetworkManager/system-connections/目录下的一个配置文件,接口(device)是物理设备,一个物理设置可以拥有多个配置文件,但只能有一个配置文件属于使用(active)状态;配置文件的生成与使用状态均由NetworkManager控制。当然,依旧支持ifcfg文件配置管理网络,但不推荐。
典型用途包括:
Scripts: 通过nmcli利用NetworkManager,而不是手动管理网络连接。nmcli支持更适合脚本处理的简洁输出格式。请注意,NetworkManager还可以执行称为“调度程序脚本”的脚本来响应网络事件。
Servers, headless machines, and terminals: nmcli可用于在没有GUI的情况下控制NetworkManager,包括创建、编辑、启动和停止网络连接以及查看网络状态。
原文链接:https://blog.csdn.net/qq_50573146/article/details/126797116
配套工具
NetworkManager:nmcli、ip等命令
network:ifconfig
ifconfig本来就不应该跟NetworkManager.service在一起配合用。
在RHEL 7的时代,ifconfig和network.service是配合使用的。以后,NetworkManager.service要和nmcli、ip等命令在一起用。
两种方式混用制造故障是不合理的
NetworkManager服务
使用 nmcli 时,NetworkManager 必须保持开启。
NetworkManager 的相关命令:
systemctl status NetworkManager 查看运行状态
ystemctl start NetworkManager 启动
ystemctl restart NetworkManager 重启
systemctl stop NetworkManager 关闭
systemctl is-enabled NetworkManager 查看是否开机启动
systemctl enable NetworkManager 开机启动
systemctl disable NetworkManager 禁止开机启动
network与NetworkManager二者冲突
network和NetworkManager一起工作时就会出现冲突
网卡解决network和NetworkManager的冲突问题_BiGpeng丶的博客-CSDN博客
centos8之后默认就是用NetworkManager管理网络,centos9之后就彻底抛弃network。
NetworkManage于network功能类似,都是用于管理网络。NetworkManage提供了nmctl、nmtui两个工具,两个都是用来管理网络,但是有一个前提:nmctl networking 状态必须是enable否则设备状态为unmanaged,这会导致network启动不了!!!!
查看方式如下
[root@master03 ~]# nmcli networking
enabled
解决
遇到network无法启动的情况,检测配置是是否有问题,若果是服务器(多网口),检测网线是否插在你启动的网口上
检测你的NetworkManage是否启动,如果启动了可参考一下方法处理
简单粗暴:关闭NetworkManage服务,并取消开机启动(要是你使用的位命令行模式,没有有用图形界面,可以放心使用这种方法,使用图形界面的话还是建议自己排查一下)
排查NetworkManage:
- 检查nmctl networking 状态是否为enabled,若果不是,执行一下命令开启
[root@master03 ~]# nmcli networking on
[root@master03 ~]# systemctl restart NetworkManager
[root@master03 ~]# systemctl restart network
[root@master03 ~]# nmcli device
DEVICE TYPE STATE CONNECTION
ens33 ethernet connected ens33
docker0 bridge unmanaged --
lo loopback unmanaged --
[root@master03 ~]#
- 检测连接是否启用
[root@master03 ~]# nmcli connection
NAME UUID TYPE DEVICE
ens33 4d574cba-a63e-49ae-8cb2-d663a8dd796e ethernet ens33如果没有启用
注意了:我的连接名称是ens33,根据你自己的情况自己编辑,所有操作完成以后都执行
[root@master03 ~]# systemctl restart NetworkManager
[root@master03 ~]# systemctl restart network
否则可能不生效
原文链接:https://blog.csdn.net/weixin_41539438/article/details/120994954
RHEL 9 告别network.service 拥抱NetworkManager (/etc/sysconfig/network-scripts/下没有网口文件的原因)
RHEL 9的网络配置:告别 ifcfg 配置文件,你好keyfile
NetworkManager 以 key-file 格式将新网络配置保存到 /etc/NetworkManager/system-connections/
从 RHEL 9.0 开始,RHEL 以 key-file 格式在 /etc/NetworkManager/system-connections/ 中存储新的网络配置。配置以旧格式存储在 /etc/sysconfig/network-scripts/ 中的连接仍然可以正常工作。对现有配置集的修改会继续更新旧的文件。
细节
在 RHEL 9 中,ifcfg (也称为 文件)将不再是网络配置文件的主存储。虽然 ifcfg 样式仍然可用,但它不再是 NetworkManager 存储新网络配置文件的默认位置。
让我们看一下:
/etc/sysconfig/network-scripts ifcfg
# NetworkManager --print-config
# NetworkManager configuration: /etc/NetworkManager/NetworkManager.conf (etc: 20-keyfiles.conf, sdn.conf)
[main]
# plugins=keyfile,ifcfg-rh
# rc-manager=auto
# auth-polkit=true
# dhcp=internal
# iwd-config-path=
dns=none
configure-and-quit=no
[keyfile]
path=/etc/NetworkManager/system-connections
[logging]
# backend=journal
# audit=false
[device]
# wifi.backend=wpa_supplicant
match-device=interface-name:br-int;interface-name:br-local;interface-name:br-nexthop,interface-name:ovn-k8s-*,interface-name:k8s-*;interface-name:tun0;interface-name:br0;interface-name:ovn0;interface-name:mirror0;driver:veth
managed=0
[device]
# wifi.backend=wpa_supplicant
match-device=interface-name:br-int;interface-name:br-local;interface-name:br-nexthop,interface-name:ovn-k8s-*,interface-name:k8s-*;interface-name:tun0;interface-name:br0;interface-name:ovn0;interface-name:mirror0;driver:veth
managed=0
# no-auto-default file "/var/lib/NetworkManager/no-auto-def
这是指不同的存储位置,如“keyfile”和“ifcfg-rh”。它首先查找keyfile文件,然后查找 ifcfg-rh 文件。您可以在 NetworkManager 文档和 RHEL 9 文档中找到有关关键文件的详细信息。NetworkManager 在各个位置查找关键文件,但本文重点介绍 中的文件。
/etc/NetworkManager/system-connections
使用默认配置,您可以在
/etc/sysconfig/network-scripts 中继续使用 ifcfg-rh 文件,但您需要注意:
-
在默认配置中,NetworkManager 将确定关键文件的优先级。例如,如果keyfile文件和 ifcfg 文件都具有具有相同 UUID 的接口配置,则 NetworkManager 将为该接口使用keyfiles文件配置。
-
当使用 NetworkManager API 的工具创建新的网络接口配置时,例如 nmcli、nmtui、gnome-control-center、anaconda、cockpit、nmstate、RHEL System Role for networking或network-manager-applet,它们将使用keyfiles文件进行配置。
虽然 ifcfg- 和 key 文件格式不具有相同的语法,但它们主要表示有关接口配置的类似数据。以下是两种格式的比较:

如何更改界面设置
无论您是决定继续使用ifcfg-rh文件(尽管不推荐)还是使用keyfiles文件,您都可以通过以下任一方式更改界面设置(如IP):
-
基于工具:您可以使用图形工具,如 nm 连接编辑器或“nmcli”命令行工具。一个优点是,与直接修改文件相比,这些工具允许您检查命令的语法。您可以在 中找到一些很好的例子,例如:man nmcli
nmcli con mod enp2s0 ipv4.addr "10.0.0.4/24"nmcli con down enp2s0nmcli con up enp2s0
-
基于文件:还可以使用文本编辑器编辑 中的keyfiles文件或 中的 ifcfg-rh 文件,然后将更改通知 NetworkManager。例如:/etc/NetworkManager/system-connections/etc/sysconfig/network-connections
vi /etc/NetworkManager/system-connections/<name>.nmconnectionnmcli connection load \ /etc/NetworkManager/system-connections/<name>.nmconnectionnmcli 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
CentOS7用nmcli和nmtui配置网络IP地址,默认是生成network的配置文件,在network-scripts文件夹下
(转自:https://blog.csdn.net/kfepiza/article/details/127582327)
nmcli和nmtui是 NetworkManager 附带的命令
NetworkManager是2004年RedHat启动的项目,皆在能够让Linux用户更轻松的处理现代网络需求,尤其是无线网络,能够自动发现网卡并配置IP地址。
RHEL7,CentOS7上同时支持network.service和NetworkManager.service(简称NM)。默认情况下这2个服务都有开启
多数图形界面的Linux都开启了NetworkManager.service服务
在CentOS9,Fedora36,Ubuntu20,22等中, nmcli c a和nmtui生成的网络配置文件默认为
/etc/NetworkManager/system-connections/文件夹中的xxx.nmconnection
但是, 在CentOS7中, nmcli c a和nmtui生成的网络配置文件默认为
/etc/sysconfig/network-scripts/文件夹中的ifcfg-xxx
用nmtui创建一个名为nm010的配置, 用nmcli创建一个名为nmcli010的配置文件
它们生成在/etc/sysconfig/network-scripts/文件夹

配置文件名与连接名相关, 但生成配置文件后,修改连接名,配置文件名不会变
对应的内容,(内容可用,但不规范,只用于演示)

对应
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=477861f3-1631-4167-8540-e3dacd41698d
DEVICE=ens33
ONBOOT=yes
IPADDR=10.7.9.1
PREFIX=8
GATEWAY=10.82.10.12
DNS1=119.29.29.29
DNS2=114.114.114.114
DNS3=8.8.8.8
DNS4=9.9.9.9
DNS5=8.8.4.4
IPV6_PRIVACY=no
DOMAIN="qq.com ens33.ifcfg.network"
PEERDNS=no
IPADDR1=10.7.9.2
PREFIX1=16
IPADDR2=10.7.9.3
PREFIX2=24
DNS6=4.2.2.2
DNS7=1.1.1.1
上面这个ifcfg-ens33一开始就有, 通过nmtui修改
这个是用nmtui生成的

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=10.7.9.1
PREFIX=24
IPADDR1=10.7.9.2
PREFIX1=24
GATEWAY=10.82.10.12
DNS1=180.76.76.76
DNS2=223.6.6.6
DNS3=119.29.29.29
DNS4=8.8.8.8
DNS5=9.9.9.9
DNS6=1.1.1.1
DNS7=223.5.5.5
DNS8=4.2.2.2
DNS9=4.2.2.1
DOMAIN="baidu.com nmtui010.nmtui"
DEFROUTE=yes
PEERDNS=no
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=nmtui010
UUID=95e52ced-7beb-4e67-90a6-e0bfe74e2686
DEVICE=ens33
ONBOOT=yes
这个使用nmcli生成的

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
IPADDR=10.7.9.1
PREFIX=8
IPADDR1=10.7.9.2
PREFIX1=8
IPADDR2=10.7.9.3
PREFIX2=8
GATEWAY=10.82.10.12
DNS1=119.29.29.29
DNS2=223.6.6.6
DNS3=180.76.76.76
DNS4=8.8.8.8
DNS5=9.9.9.9
DNS6=1.1.1.1
DNS7=114.114.114.114
DOMAIN="qq.com nmcli010"
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=nmcli010
UUID=61dd866f-9b96-4181-a130-2039c2e20b99
DEVICE=ens33
ONBOOT=yes
附加一个 CentOS9Stream 的
CentOS9 的 nmtui和nmcli 生成的文件不在 /etc/sysconfig/network-scripts/文件夹 而在/etc/NetworkManager/system-connections/文件夹 ,
文件名不是ifcfg-xxx而是xxx.nmconnection

对应的 xxx.nmconnection
[connection]
id=nmtui010
uuid=99b644f2-c647-44c4-a444-fd7e3652bdf2
type=ethernet
interface-name=ens33
[ethernet]
[ipv4]
address1=10.9.1.1/8,10.82.10.12
address2=10.9.1.2/8
address3=10.9.1.3/8
dns=223.6.6.6;180.76.76.76;119.29.29.29;8.8.8.8;9.9.9.9;1.1.1.1;114.114.114.114;4.2.2.2;4.2.2.1;223.5.5.5;
dns-search=alibaba.com;nmtui010;
ignore-auto-dns=true
method=manual
[ipv6]
addr-gen-mode=stable-privacy
method=auto
[proxy]
network与NetworkManager优先级和冲突
同时通过 /etc/sysconfig/network-scripts/ 配置文件 和 nmtui(NetworkManager 文本界面工具) 配置同一网口(如 eth-30)时,会产生冲突,且优先级遵循以下规则:
- 冲突本质:两者修改同一套配置体系,但管理工具不同(network-scripts 是传统静态配置,nmtui 是 NetworkManager 动态管理工具),同时配置会导致参数覆盖或服务启动异常。
- 优先级顺序:NetworkManager(nmtui)的配置优先级更高,但有前提条件:
- 若 NetworkManager 服务处于 运行状态(active),它会读取并优先使用自身管理的配置(通过 nmtui 配置的内容会存储在 /etc/NetworkManager/system-connections/ 目录下,此时 network-scripts/ 下的 ifcfg-eth-xxx 文件可能被忽略,或部分参数被覆盖。
- 若 NetworkManager 服务处于 停止状态(inactive),系统会 fallback 到传统的 network 服务,此时仅读取 network-scripts/ 下的配置文件,nmtui 的配置无效。
详细说明
1. 配置存储路径差异
- network-scripts 方式:配置文件为 /etc/sysconfig/network-scripts/ifcfg-eth-xx(手动创建或修改)。
- nmtui 方式:配置内容存储在 /etc/NetworkManager/system-connections/ 目录下,由 NetworkManager 统一管理。
2. 冲突表现
- 若同时配置:例如 network-scripts 中设为静态 IP(BOOTPROTO=static),nmtui 中设为 DHCP,当 NetworkManager 运行时,网口会优先遵循 nmtui 的 DHCP 配置,network-scripts 的静态 IP 不生效;反之,若 NetworkManager 停止,网口会使用 network-scripts 的静态 IP。
- 服务启动异常:可能出现 network 服务和 NetworkManager 服务互相抢占网口管理权限,导致网口无法启动(ip addr 看不到该网口的 IP)或频繁断开。
3. 推荐做法(避免冲突)
- 二选一管理工具:要么用传统的 network-scripts(适合静态配置,需停止 NetworkManager),要么用 nmtui/nmcli(NetworkManager 工具,适合动态配置。
- 推荐默认使用),不要混合使用。
- 具体操作:
- 若优先使用 nmtui(推荐,CentOS 7+ 默认启用 NetworkManager):
- 停止并禁用 network 服务:systemctl stop network && systemctl disable network。
- 确保 NetworkManager 运行:systemctl start NetworkManager && systemctl enable NetworkManager。
- 通过 nmtui 配置网口后,删除 network-scripts/ 下对应的 ifcfg-eth-30 文件(避免残留冲突)。
- 若坚持使用 network-scripts:
- 停止并禁用 NetworkManager:systemctl stop NetworkManager && systemctl disable NetworkManager。
- 启用 network 服务:systemctl start network && systemctl enable network。
- 仅通过 ifcfg-eth-30 文件配置,不要使用 nmtui。
验证优先级的方法
- 查看 NetworkManager 状态:systemctl status NetworkManager。
- 若 active,通过 nmcli connection show 查看网口的活跃配置(来自 nmtui),此时 network-scripts 的配置不生效。
- 若 inactive,通过 cat /etc/sysconfig/network-scripts/ifcfg-eth-30 查看配置,nmtui 的配置文件(/etc/NetworkManager/system-connections/ 下)会被忽略。
总结:NetworkManager(nmtui)优先级更高(当服务运行时),混合配置会冲突,建议统一管理工具。


浙公网安备 33010602011771号