以下方法本人亲测,绝对有用。VPS系统为CentOS 6.4,IP地址已经设好了。不知道咋回事,突然无法使用yum更新和安装系统文件和其他的个人软件,表现为执行yum命令以后显示“Couldn't resolve host”,ping域名显示为找不到域名地址ping unknow host,使用网上的办法更改了一下外地公网的dns,保存退出。重启执行命令:service network restart后发现还是不能解析。ping IP地址有数据反馈,但是不能ping www.google.com类似的域名还是一样不通。
其他网站上给出的方案,重启网卡或者重启服务器以后还是都不能解析,发现/etc/resolv.conf又恢复到原来的状态,里面什么都没有了,手动加入nameserver也不行。
原来在CentOS下面直接修改/etc/resolv.conf不行,因为该文件调用了/etc/sysconfig/network-scripts/ifcfg-eth0的配置预设,既然知道了这两个文件的工作原理,那么我们必须要在/etc/sysconfig/
network-scripts/ifcfg-eth0里面最后加上dns地址让resolv.cof来调用。否则重启后,因为eth0中没有预设dns的相关信息,就会使/etc/resolv.conf恢复到原来的状态,解析还是不成功。
下边给与实例
vi /etc/sysconfig/network-scripts/ifcfg-eth0 (eth0表示第一块网卡,如果你有多块网卡,那么每个都配置一下吧,不过IPADDR地址需要修改成对应的)
# XenSystem Ethernet
DEVICE=eth0
BOOTPROTO=static
IPADDR=XXX.XXX.XXX.XXX
NETMASK=XXX.XXX.XXX.XXX
GATEWAY=XXX.XXX.XXX.XXX
onboot=YES
peerdns=yes
dns1=8.8.8.8
dns2=8.8.4.4
关键在于最后边这两行,网络上的文章都人云亦云,大多数都说改成nameserver XXX.XXX.XXX.XXX样式,实际这是错误的。基于以上设置后,/etc/resolv.conf里面根本就不需要另外设置。
执行命令service network restart后,可以发现/etc/resolv.conf里面就有两个dns的解析ip了。配置好以后重启网络,cat /etc/resolv.conf,可以看到如下参数:
# Generated by NetworkManager
dns1=8.8.8.8
dns2=8.8.4.4
DNS解析设置成功。8.8.8.8和8.8.4.4是google的域名解析服务。