关闭networkmanager可避免与传统静态ip配置冲突;执行sudo systemctl disable --now networkmanager停用服务,再重启network服务即可生效,或设nm_controlled=no让其忽略指定网卡。

Linux中配置IP地址时,如果使用传统静态配置(比如编辑 /etc/sysconfig/network-scripts/ifcfg-eth0),NetworkManager 服务常会干扰甚至覆盖手动设置,导致 systemctl restart network 失败、IP不生效或网卡显示“未托管”。关闭它不是为了彻底弃用,而是避免双管理冲突——尤其在服务器环境。
确认 NetworkManager 当前状态
先检查它是否正在运行:
-
systemctl status NetworkManager—— 查看运行状态和启用情况 -
nmcli device status—— 若网卡显示“未托管”,说明 NetworkManager 已放弃管理,但服务可能仍在后台运行 -
nmcli networking—— 输出enabled表示它正接管网络控制
立即停止并禁用开机自启
适用于 CentOS/RHEL/Rocky Linux 7 及以上、Fedora 等 systemd 系统:
- 停止当前运行:
sudo systemctl stop NetworkManager - 禁止开机启动:
sudo systemctl disable NetworkManager - 一步到位(推荐):
sudo systemctl disable --now NetworkManager
对于较老的 CentOS 6 系统(使用 SysV init):
sudo service NetworkManager stopsudo chkconfig NetworkManager off
重启传统 network 服务并验证
关闭 NetworkManager 后,再启用传统网络服务:
-
sudo systemctl restart network(RHEL/CentOS 7+) - 或
sudo service network restart(CentOS 6) - 检查 IP 是否按配置文件生效:
ip a或ifconfig - 确认网卡不再被标记为“未托管”:
nmcli device status应显示为空或报错(因服务已停)
补充:临时绕过而不卸载
若需保留 NetworkManager(如桌面环境需 Wi-Fi 切换),但想让某块网卡交由传统方式管理,可编辑其配置文件:
- 打开对应 ifcfg 文件,例如:
sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33 - 添加或修改这一行:
NM_CONTROLLED=no - 保存后重启 network:
sudo systemctl restart network
这样 NetworkManager 会忽略该网卡,不再干预其配置。











