更新动态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=bolg.malu.me"
其中xxx处用申请好的用户名替换,yyy用密码替换,bolg.malu.me处用申请到的免费域名替换。
注意xxx和yyy直接有“:”且不要有空格。
要实现定时更新,那也很简单了,写进脚本,再定制一条计划任务:
crontab -e
10 * * * * lynx -mime_header -auth=xxx:yyy "http://www.3322.org/dyndns/update?system=dyndns&hostname=bolg.malu.me"
当然上面是直接执行命令,写进脚本我推荐一直比较好的方法,当初我在建lnmp时,把它写进nginx启动脚本里,这样每次启动就自动执行,那就更好了:
vim /etc/init.d/nginx
status)
lynx -mime_header -auth=xxx:yyy "http://www.3322.org/dyndns/update?system=dyndns&hostname=bolg.malu.me"
status_of_proc -p /var/run/$NAME.pid "$DAEMON" nginx && exit 0 || exit $?
;;
*)
把它写进status状态行,当执行/etc/init.d/nginx status时,就更新DNS,也是个不错方法。
马路的博客原创文章,原文地址http://bolg.malu.me/html/2010/670.html