故障现象
重启服务器后,resolve.conf会被清空,并还原为
# Generated by NetworkManager
# No nameservers found; try putting DNS servers into your
# ifcfg files in /etc/sysconfig/network-scripts like so:
#
# DNS1=xxx.xxx.xxx.xxx
# DNS2=xxx.xxx.xxx.xxx
# DOMAIN=lab.foo.com bar.foo.com
故障原因,是由于启动了NetworkManager服务导致的
以下内容转自
http://caicong.me/index.php/centos6-x-network-manager/
CentOS 6.X 自动启用了Network Manager 服务,导致手工设置无法获取Host解决办法
Posted on 2012 年 9 月 13 日
service network start 出现RTNETLINK answers: File exists错误解决 或者
/etc/init.d/network start 出现RTNETLINK answers: File exists错误解决 (呵呵,其实两者是等效的,其实前者执行的就是这个命令)。
在centos下出现该故障的原因是启动网络的两个服务有冲突:/etc/init.d/network 和 /etc/init.d/NetworkManager这两个服务有冲突吧。
从根本上说是NetworkMaganager(NM)的带来的冲突,停用NetworkManager即可解决。重启即可。
1.切换到root账户,并用chkconfig命令查看network 和 NetworkManager两个服务的开机启动配置情况;
[wzb@embedded ~]$ su – root
口令:
[root@embedded ~]# chkconfig –list network
network 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
[root@embedded ~]# chkconfig –list NetworkManager
NetworkManager 0:关闭 1:关闭 2:关闭 3:启用 4:关闭 5:关闭 6:关闭
[root@embedded ~]#
2.停用NetworkManager,开机时,不让其启动:
[root@embedded ~]# chkconfig –level123456 NetworkManager off
3.启用network服务,开机启动。在3、4、5用户模式下;
[root@embedded ~]# chkconfig –level345 network on
或者 通过编辑 vi /etc/rc.d/rc.local文件在最后添加一行:/etc/init.d/network start
[root@embedded ~]# vi /etc/rc.d/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don’t
# want to do the full Sys V style init stuff.
/etc/init.d/network start
4.停用NetworkManager.,通过重启如果是远程的话,比较安全。
[root@embedded ~]# reboot
注意:如果不是远程的话也可以通过如下命令解决,不过上述配置将在下次重启后,生效。
[root@embedded ~]# /etc/init.d/NetworkManager stop //若果是远程的的话,这将中断你的网络,即不能进行远程控制了(相当于自杀)
[root@embedded ~]# /etc/init.d/NetworkManager status
NetworkManager 已停
[root@embedded ~]# /etc/init.d/network stop //若果是远程的的话,这将中断你的网络,即不能进行远程控制了(相当于自杀)
[root@embedded ~]# /etc/init.d/network start
弹出环回接口: [确定]
弹出界面 eth0: [确定]
[root@embedded ~]#
5.测试网络: ping http://www.baidu.com/
如果能够ping通的话,说明网络已经无错误了。
如果ping不通的话,说明网络dns配置有问题,既然远程连上你的主机,说明主机的网络没问题,而你用的是ip。而你的远程主机ping域名ping不通,当时你若尝试ping ip话也是能ping通的,这就更进一步说明,是dns配置的问题。这都network Manager带来的问题,使DNS的配置文件 /etc/resolv.conf 为默认状态,即没有配置域名服务器;
可以通过编辑 vi /etc/resolv.conf 文件:
以google的域名服务器为例:在最后添加两句:
search google.com
nameserver 8.8.8.8
保存/etc/resolv.conf 并退出。
再次ping www.baidu.com 发现成功了。
6.总结: 问题产生的原因:是两个配置网络的服务的冲突造成的。卸载 NetworkManager这个罪魁祸首,是根本。
你两次执行 /etc/init.d/network start 同样会产生上述问题的症状。正常的情况下,在网络开启的状态下,应该用 /etc/init.d/network restart.
(可能网络的配置文件 ip 、dns的配置文件,是这两个配置服务的临界资源吧,这可能是造成冲突的主要原因)。
如果禁用Network Manager(转载)
[CentOS] NetworkManager constantly overwriting /etc/resolve.conf – how to disable?
Robert Heller heller at deepsoft.com
Sun Nov 29 21:42:50 UTC 2009
Previous message: [CentOS] NetworkManager constantly overwriting /etc/resolve.conf – how to disable?
Next message: [CentOS] NetworkManager constantly overwriting /etc/resolve.conf – how to disable?
Messages sorted by: [date ] [thread ] [subject ] [author ]
At Sun, 29 Nov 2009 22:57:23 +0200 CentOS mailing list wrote:
> > Hi all, > > I have a CentOS 5.4 server-only installation, i.e. no X installed, and > for some odd reason /etc/resolve.conf gets overwritten by > NetworkManager on a constant basis. I haven't been able to track down > how often, but I think it's on the hour, or something. > > This is the conents of the file right now: > > # Generated by NetworkManager > > > # No nameservers found; try putting DNS servers into your > # ifcfg files in /etc/sysconfig/network-scripts like so: > # > # DNS1=xxx.xxx.xxx.xxx > # DNS2=xxx.xxx.xxx.xxx > # DOMAIN=lab.foo.com bar.foo.com > > > > > So, I change it to the following: > > nameserver 192.168.1.254, save it, and all network functions work > fine. But, later on it get's changed again. Running > "system-config-network", I can see that the nameserver that I have > specified is in there, yet it doesn't show up in /etc/resolve.conf. > > I have searched a bit on google, but all the results reveal how to use > NetworkManager to setup the nameservers, but now how it get's set > automatically. Why does this happen, and how do I stop it from > happening?
You probably DON'T want NetworkManager running on a server!
Do this:
# Stop NetworkManager
sudo /sbin/service NetworkManager stop
# Disable it from starting at boot time
sudo /sbin/chkconfig NetworkManager off
And then *manually* set things up.
NetworkManager is meant for things like laptops that are (randomly)
connected to this or that WiFi at this or that Internet Cafe, Library,
School, Home WiFi, whatever. NetworkManager automagically adjusts
things as it encounters different networks, etc. A server will have
fixed / static networking and needs no dynamic adjustments.
This entry was posted in 信息技术 by Cai Cong. Bookmark the permalink.
以下内容转自:
http://hi.baidu.com/veioyan/item/ec5af71fa27ac2fbdceeca01
修改/etc/resolv.conf 重启服务后修改的信息丢失
我已经把会话中的Network Mananger 取消了
修改/etc/sysconfig/network-scripts下的ifcfg-eth0文件为
# nVidia Corporation CK804 Ethernet Controller
DEVICE=eth0
HWADDR=00:15:f2:33:65:6f
IPADDR=172.16.41.63
NETMASK=255.255.255.0
GATEWAY=172.16.41.1
BROADCAST=172.16.41.255
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
然后修改/etc/resolv.conf 为
# Generated by NetworkManager
# No nameservers found; try putting DNS servers into your
# ifcfg files in /etc/sysconfig/network-scripts like so:
#
# DNS1=xxx.xxx.xxx.xxx
# DNS2=xxx.xxx.xxx.xxx
# DOMAIN=lab.foo.com bar.foo.com
nameserver 202.196.16.3
这样再登录客户端就能上网
但是不知道为什么每次重启 /etc/resolv.conf 这个文件就被恢复为原始状态
# Generated by NetworkManager
# No nameservers found; try putting DNS servers into your
# ifcfg files in /etc/sysconfig/network-scripts like so:
#
# DNS1=xxx.xxx.xxx.xxx
# DNS2=xxx.xxx.xxx.xxx
# DOMAIN=lab.foo.com bar.foo.com
--------------------------------------------------------------------
解决方法
# nVidia Corporation CK804 Ethernet Controller
DEVICE=eth0
HWADDR=00:15:f2:33:65:6f
IPADDR=172.16.41.63
NETMASK=255.255.255.0
GATEWAY=172.16.41.1
BROADCAST=172.16.41.255
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
PEERDNS=yes
DNS1=202.196.16.3
PEERDNS= yes 如果在本接口配置文件中使用了DNS指令,会自动修改/etc/resolv.conf的设定以保持一致。
DNS{1,2}=
主/辅DNS的地址,如果PEERDNS=yes,会把这里的值自动写到/etc/resolv.conf
有话要说