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

最近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,可以立即生效.但是有个缺点,就是下次重启服务器的时候,估计还是要重新设置啊.有没有解决的办法?有,但需要重启网络服务.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值