> CentOS > CentOS故障 >

CentOS系统DNS不能解析问题

放到外地公网上去,ip地址已经设好了。dns也设置成功,保存退出。重启service network restart后发现不能解析了。用ip地址可以连,但是不能ping www.baidu.com

  总是这样,设置一次可以,过一会或者重启一下服务器,重启一下network都不能解析了。发现/etc/resolv.conf又恢复到原来的状态,里面什么都没有了。手动加入nameserver也不行。

  后来到网上查找,发现有人与我同样的问题。原来在CentOS下面直接修改/etc/resolv.conf不行。必须要在/etc/sysconfig/network-scripts/ifcfg-eth0里面最后加上dns的设置。要不然,重启后,肯定使用eth0设置中没有设dns的相关信息,使/etc/resolv.conf恢复到原来的状态。

  打开/etc/sysconfig/network-scripts/ifcfg-eth0,为了保险起见,可以同样修改eth1的设置

我的是 /etc/sysconfig/network-scripts/ifcfg-venet0:0

  这样设置后,/etc/resolv.conf里面根本就不需要设置。service network restart 后,可以发现/etc/resolv.conf里面就有两个dns的解析ip了。配置好以后重启网络,cat /etc/resolv.conf,可以看到如下参数:
  DEVICE=eth0
  BOOTPROTO=none
  HWADDR=00:xx:19:xx:xx:xx
  ONBOOT=yes
  TYPE=Ethernet
  USERCTL=no
  IPV6INIT=no
  PEERDNS=yes
  NETMASK=255.255.255.0
  IPADDR=xxx.xxx.xxx.xxx
  GATEWAY=xxx.xxx.xxx.xxx
  DNS1=8.8.8.8
  

   # Generated by NetworkManager
   nameserver 202.96.209.5
   nameserver 202.96.209.133
   search localdomain

  DNS解析设置成功。
  在此要强调一点的是,直接修改/etc/resolv.conf这个文件是没用的,网络服务重启以后会根据/etc/sysconfig/network-scripts/ifcfg-eth0来重载配置,如果ifcfg-eth0没有配置DNS,那么resolv.conf会被冲掉,重新变成空值。



Linux修改hosts后刷新DNS缓存
/etc/rc.d/init.d/nscd restart





(责任编辑:IT)