关于OpenWrt里DDNS动态域名更新不好用的解决方法!
安装OpenWrt后有段时间了,发现DDNS更新不是太好用(我用的dyndns),表现为:
1.路由开机后DDNS有时没有更新,不稳定。
2.断线重新pppd拨号后,DDNS不会自动更新。
因为我手动运行下面的命令是可以更新DDNS的,这说明更新不稳定的原因可能是:
1.DDNS脚本的自动检测IP变更没起作用!
2.开机时还没拨号成功就运行了脚本,所以没更新成功,然后因为原因1就悲剧了!
我的解决方法如下:
方法一(不推荐):我先是在 /etc/rc.local 里加入下面的命令,使之延时延时更新,果然成功更新。(在动态域名里要设置IP地址来源为pppoe-wan)
方法二(推荐):然而上面的方法只能保证开机更新,如果你不掉线那么这个方法就够用了,但一旦掉线上面的方法就不能自动更新!
我的解决办法是建立一个脚本放在/etc/ppp/ip-up.d/下面,因为OpenWrt会在拨号成功后自动运行/etc/ppp/ip-up.d/里的脚本。当然了,断线后的自动运行/etc/ppp/ip-down.d/下的脚本。
1.首先,要安装elinks浏览器(如果你的DDNS已经在路由的设置里找到,或你只需要更新一个DDNS可以不用安装)
opkg install elinks
2.vi /usr/bin/autoddns新建脚本,内容如下:
上面的脚本是更新OpenWrt里设置的DDNS,然后自动更新我的5个3322.org,如果你有更多帐号可以添加USER2,USER3等等
3.别忘了给脚本运行权限
4.创建脚本到/etc/ppp/ip-up.d/的链接。当然,你也可以去掉参数-s创建硬链接
然后,重启ping试试,应该自动更新DDNS了,并且你也可以手动运行autoddns命令更新DDNS了。(注意有时ping后IP没更新是dns缓存的缘故,等下再ping试试)