红联Linux门户
Linux帮助

记一次服务器boost asio:“host not found (authorative)”问题

发布时间:2016-05-18 15:57:35来源:linux网站作者:Code_My_Life

最近ubuntu12.04.3版本的服务器重启了一次,重启以后发现以前跑的挺好的程序启动不了.这就怪了,以前工作好好的,现在一重启就不行,服务器又没有升级。


第一步我怀疑是配置文件被谁查看的时候无意修改了,于是重新把配置文件检查了一下,放上去,依然不行,同样的错误.那么就是其它原因的错误了.编译了一个debug版本的,拿去过启动.果然又挂了,生成了core.gdb一下,发现是boost asio: “host not found (authorative)”,一看到有host,我想到可能是域名解决出问题了.于是我ping www.163.com,发现不通,那么问题比较清楚了,就是因为无DNS导致的.如何解决DNS问题嘞.我记得阿里云发布了公开的DNS,转到它们的网站,上面对utuntu这么提议

wget http://www.alidns.com/static/soft/SetAliDNS.sh -O SetAliDNS.sh && chmod +x SetAliDNS.sh && sudo ./SetAliDNS.sh 


果断执行,再ping 163就没有问题了.看一下

#!/bin/sh 
head=/etc/resolvconf/resolv.conf.d/head 
config_resolvconf(){ 
cp -a ${head} ${head}.save 
cat >${head} <<EOF 
options attempts=2 timeout=2 rotate 
nameserver 223.5.5.5 
nameserver 223.6.6.6 
EOF 
/sbin/resolvconf -u 
echo "Reconfig /etc/resolv.conf success." 

restore_resolvconf(){ 
if [ -e ${head}.save ];then 
cat ${head}.save > ${head} 
else 
true > ${head} 
fi 
/sbin/resolvconf -u
echo "Resotre /etc/resolv.conf success." 

action=$1 
if [ $(cat /etc/issue |grep -iwc ubuntu) -ne 1 ];then 
echo "Only support Ubuntu OS" 
exit 
fi 
if [ "${action}" != "restore" ];then 
config_resolvconf 
else 
restore_resolvconf 
fi 
echo '--------------------------------------' 
cat /etc/resolv.conf 
#End 


还是修改的/etc/resolv.conf,可以立即生效.但是有个缺点,就是下次重启服务器的时候,估计还是要重新设置啊.有没有解决的办法?有,但需要重启网络服务.


本文永久更新地址:http://www.linuxdiyf.com/linux/20753.html