ping unknown host www.baidu.com

1. unknown host

CentOS6.5 下ping百度域名时,ping不通,也无法上网了。 出现 unknown host( 无法识别的主机),原因可能是DNS未配置正常。

ping谷歌公共DNS(8.8.8.8)发现也ping不通,查看/etc/sysconfig/network-scripts/ifcfg-eth0,发现没配置网关,添加 GATEWAY=192.168.1.1, 运行 ping 8.8.8.8 正常

ping 百度仍然出错,查看配置文件/etc/resolv.conf,发现内容为空,添加 nameserver 202.96.134.133 ,再次ping运行正常

2. DNS配置被清空

安装网络管理服务 NetworkManager,sudo yum install NetworkManager.x86_64,重启系统发现又不能ping百度了,检查/etc/resolv.conf,发现文件内容被清空,添加nameserver。又一次机器重启后,又ping不通百度了,于是检查配置文件/etc/resolv.conf,发现上次的修改被清空了。真是奇怪,明明手动修改好了的,怎么会不见了呢?经谷歌搜索,发现很多人都遇到了这个问题

/etc/resolv.conf被清空的原因是/etc/sysconfig/network-scripts/ifcfg-eth0中没有dns server信息,所以重启后系统自动使用/etc/sysconfig/network-scripts/ifcfg-eth0中的设置重新设置/etc/resolv.conf,导致修改/etc/resolv.conf无效。只要将/etc/sysconfig/network-scripts/ifcfg-eth0中加入nameserver信息, /etc/resolv.conf根本不用做修改,系统重启或网络重启后会自动根据ifcfg-eth0设置resolv.conf。

解决方法,打开ifcfg-eth0,在末尾加上下面语句(xxx用dns地址代替)

DNS1=xxx.xxx.xxx.xxx

DNS2=xxx.xxx.xxx.xxx

改完保存后,重启网络服务:service network restart,然后再打开 /etc/resolv.conf,发现里面已经有了nameserver了,不用再手工修改resolv.conf了。重启机器后,resolv.conf里面nameserver仍然存在,至此resolv.conf总是被清空的问题就解决了。

既然每次重启后系统能修改resolv.conf文件,说明系统安装NetworkManager服务后,会主动激活eth0网卡,ifup eth0命令就显多余,删除/etc/rc.local的ifup eth0。这也说明上文的没有eth0也是之前卸载NetworkManager服务造成的,导致ifcfg-eth0也被删除。至此网络问题完美修复。

猜你喜欢

转载自tcspecial.iteye.com/blog/2118405