CentOS重启网络出现Job failed,NetworkManager与network冲突解决
机器重启后网卡起不来,systemctl status network啪地甩出一行红字“Job for network.service failed”,瞬间远程断线,心跳跟着掉一拍。别急着拍桌子,九成是NetworkManager和network老冤家又打架。把俩人分开,再给网卡递把椅子,就能让流量重新跑起来。

先别急着重启,看一眼日志到底谁撂挑子
执行
journalctl -xeu network.service
屏幕如果跳出
Bringing up interface eth0: Error: Connection activation failed: No suitable device found for this connection
基本坐实冲突。NetworkManager已经把eth0标记成自己的崽,network服务再去抢,就会报device busy。日志里还能看到

RTNETLINK answers: File exists
这行提示,就是IP地址被前者占着,后者死活写不进去。
两条路只能留一条,永久关闭其中一个
最干脆的做法:二选一。服务器场景静态IP居多,network服务更轻量,直接让NetworkManager下课。
1. 停掉NM并禁止开机自启
systemctl stop NetworkManager

systemctl disable NetworkManager
2. 把网卡配置从NM数据库里踢出去
nmcli device set eth0 managed no
防止它下次又手痒。
3. 确认/etc/sysconfig/network-scripts/ifcfg-eth0里这几行干净没冲突
BOOTPROTO=static
ONBOOT=yes
NM_CONTROLLED=no
最后这个no是重点,告诉network服务:这张卡归我管,别人别插手。
4. 重新加载并启动network
systemctl restart network
再看状态,绿色active,IP正常飘起,远程SSH秒连,世界瞬间安静。
想留NetworkManager也行,把network服务彻底请走
桌面版或者需要频繁切换Wi-Fi的场景,NM更灵活。那就反过来操作:
1. 禁用旧版network
systemctl stop network
systemctl disable network
2. 让NM接管全部设备
nmcli networking on
再写固定IP,用nmtui或者手工建connection,保存后重启,同样不会掉线。
双栈环境注意优先级,别让IPv6添乱
有时IPv6地址先被NM绑定,network再去写IPv4,也会报file exists。关闭IPv6或统一由一方配置,能少踩一半坑。临时关:
echo 1 > /proc/sys/net/ipv6/conf/eth0/disableipv6
永久关:/etc/sysctl.conf加
net.ipv6.conf.eth0.disableipv6 = 1
然后sysctl -p生效。
配置文件残留也能惹祸,记得清干净
曾经装过图形界面又卸掉,/etc/NetworkManager/system-connections里可能躺着旧profile,名字和eth0一毛一样,NM优先加载它,结果IP冲突。直接rm掉,再重启,省得半夜被短信叫醒。
CentOS重启网络出现Job failed,十有八九是NetworkManager与network抢设备;留一个、关一个,把NM_CONTROLLED=no写进ifcfg,日志立刻从红转绿,网卡乖乖上线。
