CentOS7重启网络报错,network与NetworkManager冲突处理
时间:2026-10-6 07:38 作者:emer 分类: 无
前言
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 断了,再也连不上。
解决:
- 改配置之前先开个备用 SSH 连接,别关
- 或者直接用云服务器控制台的 VNC 操作
- 不要在生产环境随便重启网络
坑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 协助处理
标签: 运维 CentOS7 网络配置 NetworkManager 网卡