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