OpenWrt通过ddns-scripts使用dnspod的动态域名解析(ddns)功能

最近想实现在openwrt上的ddns功能,百度google找来找去,多数都是用一个bash脚本来实现的。无奈都要求安装curl或者是wget,其依赖包libopenssl体积庞大,本人路由4M的小ROM实在装不起。

终于,我找到了http://blog.biner.me/article/OpenWrt-use-dnspod-Dynamic-DNS-ddns.html此文,轻松解决了本问题。

步骤很简单:

  1. 注册dnspod;
  2. 首先你得要有一个顶级域名,没有的话可以去申请个免费的(例如.tk后缀什么的);
  3. 然后你要有一个支持php的空间,实在没有可以用上文提到的博主提供的接口地址(当然也可以用我提供的,只需把下文的xxx改为7forz即可);
  4. 下载这个php文件:dnspodupdate.zip
  5. 把该文件放在外网可以访问的空间里,比如http://www.xxx.com/api/dnspodupdate.php
  6. 在你的openwrt路由上安装ddns-scripts,有luci的装luci-app-ddns更方便;
  7. 登录路由,打开/usr/lib/ddns/services,添加
    "dnspod.com" "http://www.xxx.com/api/dnspodupdate.php?username=[USERNAME]&password=[PASSWORD]&domain=[DOMAIN]&myip=[IP]"
  8. 登录路由器管理界面,服务->动态DNS,服务提供商里会出现dnspod.com选项。如果没有luci,请修改/etc/config/ddns文件以达到同样效果。
    主机名:二级域名@顶级域名(比如你的二级域名是abc.xxx.com,那么该处就填写abc@xxx.com)(这样填luci可能不给保存,就手动改/etc/config/ddns文件吧)
    用户名:就是你的dnspod账户
    密码:就是你的dnspod密码
    网络:选wan
    点“保存并应用”,最好开启定时更新,间隔时间不要太短,5分钟就好。
  9. 重启路由就可以测试效果了。如果不想重启,根据openwrt的wiki,还可以执行
ACTION=ifup INTERFACE=wan /sbin/hotplug-call iface

来测试。


已有3条评论 发表评论

  1. 匿名 /

    这条 url 本身就需要用 wget 来执行。如果有 wget ,又何必这么麻烦,用 shell script 直接就能做了。

    1. 7forz / 本文作者

      确实,大神不需要ddns-scripts

发表评论