测试服务器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指令说明。
所以就都改下呗。。