CentOS7重启网络报错,network与NetworkManager冲突处理

前言

CentOS7改完网卡配置后 systemctl restart network 报错,常见提示是 "Job for network.service failed because the control process exited with error code"。根源往往是老的 network 服务和新的 NetworkManager(简称NM)同时管一块网卡,配置互相打架。本篇讲清楚怎么判断、怎么处理。

一、先看报错到底是什么

# 重启网络看具体错误
systemctl restart network
# 查看详细失败原因
systemctl status network -l
journalctl -xe | grep network
# 看网卡配置有没有写错
cat /etc/sysconfig/network-scripts/ifcfg-ens33

常见报错:配置里 NM_CONTROLLED=no 与NM冲突、ONBOOT、网关或IP写重复、网卡名和配置文件名对不上。

二、方案一:服务器纯命令行,关掉NetworkManager

服务器一般用不到图形网络管理,直接停用NM,让network接管最干净:

# 停止并禁用NetworkManager
systemctl stop NetworkManager
systemctl disable NetworkManager
# 再重启network
systemctl restart network

同时确认网卡配置里写:

NM_CONTROLLED=no

这样两块不会抢同一张网卡。

三、方案二:保留NetworkManager,用它管网络

如果是桌面或需要NM的场景,就别用老network:

# 查看NM识别到的连接
nmcli connection show
# 重启某块网卡连接
nmcli connection down ens33 && nmcli connection up ens33
# 查看设备状态
nmcli device status

注意:用NM管理时,配置尽量通过 nmcli 或nmtui改,不要手改ifcfg后又让network重启。

四、常见配置文件检查项

/etc/sysconfig/network-scripts/ifcfg-ens33:

TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=114.114.114.114
  • NAME/DEVICE 要和实际网卡名一致;
  • 改完配置重启前,保留一个已登录SSH会话,防止网络断了把自己关外面。

五、常见坑

  1. network和NetworkManager同时重启:两个服务都抢网卡,IP时有时无,二选一;
  2. 网卡名变了配置文件没改:新系统网卡名是ens33不是eth0,文件名和DEVICE要对应;
  3. GATEWAY写了两个:多网卡配多个网关会路由冲突;
  4. 改完只restart不验证:用 ping、ip addr 确认IP真的起来了;
  5. 云服务器别乱关NM:部分云镜像靠NM配内网,关了可能丢内网,先确认再操作。

总结

重启网络报错,先 systemctl status network -l 看原因;服务器场景停掉并禁用NetworkManager、配置里 NM_CONTROLLED=no,再restart network;桌面场景改用nmcli管理。二选一,不要两个服务同时管网卡。

遇到问题加QQ23979811 协助处理


emer 发布于  2026-10-21 07:23 

CentOS7重启网络报错,network与NetworkManager冲突处理

前言

CentOS7 里有两套网络管理工具:传统的 network 服务和新的 NetworkManager。两个同时用就会打架,重启网络的时候报错,甚至把网络搞断。本文就讲一下这个冲突怎么解决。

报错现象

执行 systemctl restart network 或者 service network restart 的时候,报类似这样的错:

Restarting network (via systemctl):  Job for network.service failed. See 'systemctl status network.service' and 'journalctl -xn' for details.

或者:

RTNETLINK answers: File exists

原因

CentOS7 默认装了 NetworkManager(简称 NM),它也在管理网络接口。传统的 network 服务也在管。两个同时管同一个网卡,配置就会冲突。

解决方法

方法一:关掉 NetworkManager(推荐服务器用)

服务器一般不需要图形界面的网络管理工具,直接关掉:

systemctl stop NetworkManager
systemctl disable NetworkManager

然后重启 network:

systemctl restart network

方法二:让 network 忽略 NetworkManager

编辑网络配置文件:

vi /etc/sysconfig/network-scripts/ifcfg-eth0

在文件里加一行:

NM_CONTROLLED=no

意思是这个网卡不归 NetworkManager 管,只由 network 服务管理。

然后重启网络:

systemctl restart network

方法三:全部交给 NetworkManager 管

如果你想用 NM 管理,那就把传统 network 关掉:

systemctl stop network
systemctl disable network

然后用 NM 的命令管理网络:

nmcli connection show
nmcli connection up eth0

验证

重启网络之后,看看网卡 IP 还在不在:

ip addr

如果 IP 还在,能 ping 通外网,就说明搞定了。

常见坑

坑1:改了配置把自己踢下线

远程 SSH 连上去改网络配置,改完重启网络,结果 SSH 断了,再也连不上。

解决:

  1. 改配置之前先开个备用 SSH 连接,别关
  2. 或者直接用云服务器控制台的 VNC 操作
  3. 不要在生产环境随便重启网络

坑2:重启服务器后网络又坏了

临时重启 network 好了,但重启服务器后又不行了。

原因: NetworkManager 又自动启动了,和 network 冲突。

解决: 把 NetworkManager 禁用掉:

systemctl disable NetworkManager

坑3:网卡名不是 eth0

新一点的系统网卡名可能是 ens33、enp0s3 这种。

解决: 先看一下网卡叫什么:

ip addr

然后改对应的配置文件,比如 ifcfg-ens33。

总结

CentOS7 网络冲突的解决思路很简单:

方案 操作 适用场景
关 NM systemctl disable NetworkManager 服务器,推荐
NM_CONTROLLED=no 网卡配置里加这行 只用 network 服务
全用 NM 关掉 network,用 nmcli 桌面环境

服务器上推荐直接关掉 NetworkManager,用传统的 network 服务管理网络,简单稳定。

遇到问题加QQ23979811 协助处理


emer 发布于  2026-10-6 07:38 
'); })();