Total Pageviews

Monday, 14 November 2011

不需要动态dns软件 来更新动态DNS

更新动态DNS很多场合会用到,之前在公司里有过这样的需求,在squid上使用DDNS(花生壳)来远程连接内网的服务器机架上. 当时是用的CentOS5.4,安装的是官网的linux版花生壳客户端,而这台服务器同时运行的是squid透明代理,用来做上网代理服务器,当花生壳运行起来的时候,发现squid就停止运行,后来发现linux版的花生壳也会争用80端口,从而和squid冲突. 今天在网上发现另外一款动态DNS(其实很早就有了,今天想起它),它可以使用浏览器,比如lynx来实现域名更新,方法非常简单,也很绿色干净(至少比花生壳那么大的客户端好) 很简单的一条语句实现dns更新:

lynx -mime_header -auth=xxx:yyy http://www.3322.org/dyndns/update?system=dyndns&hostname=urdomain.com

其中xxx处用申请好的用户名替换,yyy用密码替换,urdomain.com处用申请到的免费域名替换。 注意xxx和yyy直接有“:”且不要有空格。 要实现定时更新,那也很简单了,写进脚本,再定制一条计划任务:

crontab -e
10 * * * * lynx -mime_header -auth=xxx:yyy http://www.3322.org/dyndns/update?system=dyndns&hostname=urdomain.com

当然上面是直接执行命令,写进脚本我推荐一直比较好的方法,当初我在建lnmp时,把它写进nginx启动脚本里,这样每次启动就自动执行,那就更好了:

vim /etc/init.d/nginx
status)
lynx -mime_header -auth=xxx:yyy http://www.3322.org/dyndns/update?system=dyndns&hostname=urdomain.com
status_of_proc -p /var/run/$NAME.pid "$DAEMON" nginx && exit 0 || exit $?
;;
*)

把它写进status状态行,当执行/etc/init.d/nginx status时,就更新DNS,也是个不错方法。

No comments:

Post a Comment