您的位置:首页 > 运维架构 > Linux

Linux系统重启network服务失败

2016-09-28 15:22 585 查看

问题描述
使用KVM通过修改配置文件配置好网卡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地址。

根因
使用/etc/network/interfaces脚本文件配置IP信息的时候,使用的是Network服务;使用图形化界面配置IP地址的时候,使用的是NetworkManager服务。

Netwok服务和NetworkManager服务之间存在下面的关系:

当系统内无NetworkManager时,系统默认使用Netwok服务进行网络配置。

当系统内启用了NetworkManager之后,NetworkManager默认接管了系统的网络配置。此时需要使用NetworkManager自己的网络配置参数来进行配置。适用于桌面环境,例如使用笔记本等。

Netwok服务和NetworkManager服务之间不能同时共存,两者为了避免冲突,又能共享配置,就有下面的解决方案:

当Network-Manager发现/etc/network/interfaces被改动的时候,则关闭自己(显示为未托管),除非NetworkManager的相关标志位设置成真。

当NetworkManager的相关标志位设置成真时,/etc/network/interfaces,则不生效。

从Red Hat 6开始,默认是开启NetworkManager服务的,此时通过修改脚本的方式配置IP地址将无效,除非将相关标志位设置为假。例如,使用DHCP配置的IP地址,其格式如下:

[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地址将无效。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: