问题描述
所有域名无法正常解析。
ping www.baidu.com 等域名提示 Couldn’t resolve host 错误。
curl www.baidu.com 等网址提示 Couldn’t resolve host ‘www.baidu.com’ 错误
尝试解决
网上查资料,有说修改 /etc/resolv.conf
文件,添加 nameserver 8.8.8.8
的解决方案,但尝试后发现重启网卡后 /etc/resolv.conf
文件会恢复到原来的状态。
重新查找资料发现:
原来在 CentOS 下面直接修改
/etc/resolv.conf
不行,因为该文件调用了/etc/sysconfig/network-scripts/ifcfg-eth0
的配置预设,既然知道了这两个文件的工作原理,那么我们必须要在/etc/sysconfig/ network-scripts/ifcfg-eth0
里面最后加上 dns 地址让resolv.conf
来调用。否则重启后,因为 eth0 中没有预设 dns 的相关信息,就会使/etc/resolv.conf
恢复到原来的状态,解析还是不成功。
此时, /etc/resolv.conf
文件内容如下
# 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
其实,这里的提示已经很清楚了。提示没有找到域名服务器,请在 /etc/sysconfig/network-scripts
里面的配置文件添加 DNS 服务器。
解决方案
修改 /etc/sysconfig/network-scripts/ifcfg-eth0
文件(这里是第一块网卡 eth0)
原来的内容是:
DEVICE=eth0 BOOTPROTO=staticONBOOT=yes IPADDR=xxx.xxx.xxx.xxx NETMASK=255.255.224.0GATEWAY=xxx.xxx.xxx.x
在最后加上两行
DNS1=8.8.8.8 DNS2=8.8.4.4
改完后重启网卡
service network restart
重启后再查看 /etc/resolv.conf
文件是这样的:
# Generated by NetworkManagersearch webhostbox.netnameserver 8.8.8.8
再尝试 ping www.baidu.com 已经能正常解析
作者:lancely
链接:https://www.jianshu.com/p/15eb7d82f084