Red Hat6.5 DNS客户端的配置。

    修改/etc/resolv.conf文件,添加了一行nameserver 114.114.114.114,然后可以进行正常的DNS解析。

[root@TestServer bin]# cat /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 114.114.114.114
[root@TestServer bin]# ping www.baidu.com -c 1
PING www.a.shifen.com (14.215.177.37) 56(84) bytes of data.
64 bytes from 14.215.177.37: icmp_seq=1 ttl=55 time=2.53 ms

--- www.a.shifen.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 30ms
rtt min/avg/max/mdev = 2.534/2.534/2.534/0.000 ms

    重启网卡之后,发现DNS无法正常解析了,查看/etc/resolv.conf后发现添加的内容被自动重置了。

[root@TestServer bin]# service network restart 
正在关闭接口 eth0: 设备状态:3 (断开连接)
                                                           [确定]
关闭环回接口:                                             [确定]
弹出环回接口:                                             [确定]
弹出界面 eth0: 活跃连接状态:激活的
活跃连接路径:/org/freedesktop/NetworkManager/ActiveConnection/1
                                                           [确定]
[root@TestServer bin]# ping www.baidu.com -c 1
ping: unknown host www.baidu.com
[root@TestServer bin]# cat /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
[root@TestServer bin]#

    仔细看了/etc/resolv.conf的内容后发现,此文档的内容由NetworkManager生成,需要把dns信息写入到/etc/sysconfig/network-scripts中,格式为DNS1=xxx.xxx.xxx.xxx。

    查看了下NetworkManager,发现这个服务是管理多网卡,无线网络切换时候使用的,映像中好像这个服务一般都会被关掉。然后测试了下,发现有两种方法可以解决/etc/resolv.conf自动重置。


      方法1:在不关闭NetworkManager的前提下,修改网卡的配置文件,在尾端添加DNS1=xxx.xxx.xxx.xxx 的配置,修改完成后在/etc/resolv.conf中会自动生成DNS的配置。

    
[root@TestServer bin]# service NetworkManager status
NetworkManager (pid  15323) 正在运行...
[root@TestServer bin]# tail -1 /etc/sysconfig/network-scripts/ifcfg-eth0 
DNS1=114.114.114.114
[root@TestServer bin]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 114.114.114.114

        方法2:关闭NetworkManager服务,直接在/etc/resolv.conf中添加nameserver=xxx.xxx.xxx.xxx    

[root@TestServer bin]# cat /etc/resolv.conf                          
# Generated by NetworkManager
nameserver 114.114.114.114
[root@TestServer bin]# service NetworkManager status
NetworkManager 已停
[root@TestServer bin]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 |grep DNS
[root@TestServer bin]# service network restart
正在关闭接口 eth0:                                        [确定]
关闭环回接口:                                             [确定]
弹出环回接口:                                             [确定]
弹出界面 eth0: Determining if ip address 108.88.3.253 is already in use for device eth0...
                                                           [确定]
[root@TestServer bin]# cat /etc/resolv.conf                                   
# Generated by NetworkManager
#nameserver 114.114.114.114
nameserver 114.114.114.114

        使用方法2,需要记住关闭NetworkManager的开机自启,以免重启机器后服务自动启动

[root@TestServer bin]# chkconfig  NetworkManager off
[root@TestServer bin]# chkconfig  --list |grep  NetworkManager 
NetworkManager  0:关闭  1:关闭  2:关闭  3:关闭  4:关闭  5:关闭  6:关闭


    另外,在关闭NetworkManager的情况下,如果/etc/sysconfig/network-scripts/下的网卡配置文件中存在DNS的配置,也会自动被生成到/etc/resolv.conf中,替换原先的nameserver配置。