适用于OpenWRT/LEDE自带DDNS功能的阿里云aliyun.ipk,完美嵌入

如你所知,LEDE自带的DDNS功能并不支持阿里云解析,国内的话目前比较稳定的也只有花生壳还算可以。然而免费的东西,难免有域名不好听、偶尔抽风等毛病。前天看到本坛lean兄的大作,才发现可以将阿里云DNS解析设置用脚本来管理,实现了动态解析自有域名的梦想。阿里那边.top域名促销,购买首年只需2元,续费每年也不过16,拿来当私有动态DNS最为合适。然而我看lean兄软件包里的做法,是自建一个完整功能的DDNS的软件包,感觉些许不便,比如不支持IPV6、HTTPS证书等功能,设置方面也比较薄弱,于是有了将阿里云解析功能集成进自带DDNS的想法。这么做的优点,是将管理界面、IP检测、启停、日志等外围功能都交由官方包实现,脚本只需完成最核心的构建云指令并签名,及与阿里服务器之间的通信功能。目前已实现完全嵌入自带DDNS功能,并做出IPK包,拿来分享给需要的朋友。再次感谢lean兄提供的思路!
脚本及安装包完全开源,放弃版权,欢迎各位集成到自己的固件。软件依赖:ddns-scripts(即自带DDNS管理脚本) luci-app-ddns(可选,自带功能的LUCI界面)wget(GNU Wget 完成与服务器通信) openssl-util(openssl工具用于生成签名)。

LEDE首页上的DDNS状态一栏。

DDNS管理主界面。我用了花生壳和阿里云2个动态DNS,在一个界面上管理。

DDNS设置页面,注意DDNS服务提供商列表里多了一个 aliyun.com。支持IPV6、HTTPS、自定义网络接口、代理服务器、检测间隔等功能。

本次启动的日志记录。可以看到前面的启动、IP获取等都由自带功能完成,在检测到IP地址发生变化后调用了脚本来完成与服务器之间的通信。

很幸运,日志记录了一段服务器返回出错后处理的流程。可以看到按照设置的重试间隔60秒后,脚本顺利完成IP更新。另外,这次我用的是HTTPS链接。

用到的脚本,只有一个 update_aliyun_com.sh 文件,安装后位置在 /usr/lib/ddns/。

核心的构造请求参数函数。这部分折腾了2天,坑爹的阿里接收到无效参数仅返回一个400,没有任何有用提示,害我以为是服务器问题排查了半天。

--------------------
最后当然是安装包。。。OpenWRT/LEDE全平台适用

ddns-scripts_aliyun_1.0.0-1_all

源码已托管到github https://github.com/sensec/ddns-scripts_aliyun
偶尔手痒也会想再完善一下。。。然而真没什么可改的 外围的繁琐的功能都交由官方客户端搞定,核心的阿里云通信协议又是几年不变,现在基本没我的事了。。。
当然,欢迎各位提出自己的需求或者遇到的问题,力所能及必定回复(安装使用等OpenWRT基础问题请自行google/baidu解决)。

此文章为转发

适用于OpenWRT/LEDE自带DDNS功能的阿里云aliyun.ipk,完美嵌入》有2个想法

  1. 你好,我看了你的这个流程,我简单描述一下你看我说的对不对。
    我现在有一个k2p银色款,刷了breed和cc-k2p-v1.7.2-16m-纯净版,现在需要再在路由器安装ipk,安装完后,下载.sh配置文件,添加自己的阿里云api信息,然后把这个.sh文件放到路由器的/usr/lib/ddns/里面(或者安装完ipk会出现.sh文件,修改即可)
    几个依赖,也是需要安装的,对吧,安装完登录路由就可以吗

    1. 忽然间懂了。
      下载winscp 软件,使用该软件输入路由器的ip,登录名密码为路由器登录名和密码,用这个软件上传能支持阿里云ddns的插件ddns-scripts_aliyun_1.0.0-1_all.ipk
      使用putty或xshell登录路由器linux,在linux的环境下安装ipk
      使用命令安装几个依赖包后才能安装ddns.ipk
      先在xshell输入命令如下:
      opkg install ddns-scripts
      opkg install luci-app-ddns
      opkg install wget
      opkg install openssl-util
      然后再输入 opkg install ddns-scripts_aliyun_1.0.0-1_all.ipk
      大家可以自己修改这个ipk的名字,方便安装。

发表评论

电子邮件地址不会被公开。 必填项已用*标注