Linux系统重启network服务失败
问题描述
使用KVM通过修改配置文件配置好网卡IP,使用命令行service network restart 重启网络服务失败。
如图:

使用图形化管理工具配置IP,在系统界面右上角可以看到网卡状态为未连接,配置好IP以后使用service network restart命令时报同样的错。
如图:

如图:

使用图形化管理工具配置IP,在系统界面右上角可以看到网卡状态为未连接,配置好IP以后使用service network restart命令时报同样的错。
如图:

告警信息
使用ping命令查看路由是否通畅,系统提示“network is unreachable”。
处理过程
解决的方法很简单,直接将NetworkManager服务关闭即可。步骤描述如下:
步骤 1 查看NetworkManager服务是否开启。
因系统版本各异,NetworkManager服务的具体名称可以用chkconfig --list查看。
如图所示:

从图中,可以发现NetworkManager服务已经开启了。
步骤 2 禁用NetworkManager服务。
将当前激活的服务关闭,使用下面的命令:
service NetworkManager stop
使用下面的命令禁止服务自启动。
chkconfig NetworkManager off
步骤 3 使用脚本方式配置IP地址。
步骤 1 查看NetworkManager服务是否开启。
因系统版本各异,NetworkManager服务的具体名称可以用chkconfig --list查看。
如图所示:

从图中,可以发现NetworkManager服务已经开启了。
步骤 2 禁用NetworkManager服务。
将当前激活的服务关闭,使用下面的命令:
service NetworkManager stop
使用下面的命令禁止服务自启动。
chkconfig NetworkManager off
步骤 3 使用脚本方式配置IP地址。
根因
使用/etc/network/interfaces脚本文件配置IP信息的时候,使用的是Network服务;使用图形化界面配置IP地址的时候,使用的是NetworkManager服务。
Netwok服务和NetworkManager服务之间存在下面的关系:
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="dhcp"
HWADDR="00:1F:29:57:8B:A8"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
不同的系统中,NetworkManager服务的标志位不同。例如Ubuntu中是存放在配置文件/etc/NetworkManager/nm-system-settings.conf中,名称为managed。
配置文件修改后,需要重启NetworkManager服务。
本案例中,系统默认启用了NetworkManager服务,详细信息如下所示:
[root@localhost ~]# chkconfig|grep -i network
NetworkManager 0:off 1:off 2:on 3:on 4:on 5:on 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@localhost ~]#
此时再启用Network服务时是不生效的。所以重启Network服务会失败。
Netwok服务和NetworkManager服务之间存在下面的关系:
- 当系统内无NetworkManager时,系统默认使用Netwok服务进行网络配置。
- 当系统内启用了NetworkManager之后,NetworkManager默认接管了系统的网络配置。此时需要使用NetworkManager自己的网络配置参数来进行配置。适用于桌面环境,例如使用笔记本等。
- 当Network-Manager发现/etc/network/interfaces被改动的时候,则关闭自己(显示为未托管),除非NetworkManager的相关标志位设置成真。
- 当NetworkManager的相关标志位设置成真时,/etc/network/interfaces,则不生效。
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="dhcp"
HWADDR="00:1F:29:57:8B:A8"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
不同的系统中,NetworkManager服务的标志位不同。例如Ubuntu中是存放在配置文件/etc/NetworkManager/nm-system-settings.conf中,名称为managed。
配置文件修改后,需要重启NetworkManager服务。
本案例中,系统默认启用了NetworkManager服务,详细信息如下所示:
[root@localhost ~]# chkconfig|grep -i network
NetworkManager 0:off 1:off 2:on 3:on 4:on 5:on 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@localhost ~]#
此时再启用Network服务时是不生效的。所以重启Network服务会失败。
建议与总结
从Red Hat 6开始,默认是开启NetworkManager服务的,此时通过修改脚本的方式配置IP地址将无效。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?