Centos 6 DNS 配置 解决 Unknown host

  • A+
所属分类:linux技术
摘要

测试服务器Maven 打包时遇到了如下的错误看上去应该是对 maven.aliyun.com的DNS 域名解析出问题了。

测试服务器Maven 打包时遇到了如下的错误

maven.aliyun.com: Name or service not known: Unknown host maven.aliyun.com: Name or service not known

看上去应该是对 maven.aliyun.com的DNS 域名解析出问题了。

登录到服务器上 ping  maven.aliyun.com  果然ping 不通, 而本地机器上是可以的。基本可以确定是 DNS的问题。

 

于是百度了下centos6 如何配置DNS 。 较多的结果是。

vi /etc/resolv.conf

在resolv.conf中增加一行,配置一个有效的dns 服务器保存如下。

nameserver 114.114.114.114

重新ping了下也确实解决了。 能够正常解析了。但是 resolve.conf文件中的一行文字引起了我的注意。

; generated by /sbin/dhclient-script

这应该说明这个文件是被自动生成的, 在这里的修改会不会不持久呢。 于是进一步搜索了下。果然发现这不是个持久的修改,重启后,会被覆盖。

 

查看下网卡的网络配置。单网卡通常是 ifcfg-eth0,有几个网卡有几个 ethX ,具体可以通过 ifconfig查看 

vi /etc/sysconfig/network-scripts/ifcfg-eth0

其中也存在对应DNS的相关配置

DNS1=192.168.1.2

那么 /etc/sysconfig/network-scripts/ifcfg-eth0 与  resolve.conf 中对于DNS的配置是什么关系呢?网上没有找到比较确切的说法。

 

在官网查到了网卡配置文件的说明。在这里

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/deployment_guide/s1-networkscripts-interfaces

相关的几个配置指令

DNS{1,2}=address

指定一个DNS服务器地址, 当 PEERDNS指令 设置为YES时,将被写入 /etc/resolv.conf 文件。

 

上面提到了resolv.conf 确实会被这里的DNS配置修改。

 

再看下PEERDNS指令

PEERDNS=answer

当为YES时,如果使用了DNS设置, 或者启用了DHCP,或者 使用了那啥(Microsoft's RFC 1877 IPCP extensions with PPP),/etc/resolv.conf 文件将会被修改。默认为YES
当为NO时, 不修改 /etc/resolv.conf

 

测试了下, 如果只修改resolv.conf中的DNS, 重启系统后, 确实会被刷新为ifcfg-ethX中的配置。

 

总结如下

 

1. 系统需要进行域名解析时,是会优先使用resolv.conf中的DNS配置。所以直接修改resolv.conf  DNS配置是可以生效的。

2. resolv.conf中的配置可能会被ethX中的DNS配置覆盖,规则如上PEERDNS指令说明。 

 

所以就都改下呗。。