通告 欢迎访问爱刷机(原爱搜路由、爱搜啊博客aisoa.cn)

OpenWRT/LEDE添加阿里云DDNS功能阿里云DDNS脚本IPK安装包下载

2021-08-15
0评论
/
阅读
管理员

以前写过一篇关于《荒野无灯老毛子华硕padavan固件设置阿里云DDNS内网穿透方法》后来使用过一段时间,遇到过一个关于DDNS内网穿透的we问题,就是反复获取《aliddns阿里云ddns内网穿透获取IP反复变化

讲过使用阿里云ddns后无法正常的识别WAN IP地址的解决办法

OpenWRT/LEDE自带DDNS功能的阿里云脚本

LEDE自带的DDNS功能并不支持阿里云DDNS解析,国内的话目前比较稳定的也只有花生壳还算可以。然而免费的东西,难免有域名不好听、偶尔抽风等毛病。

前天看到lean兄的大作,才发现可以将阿里云DNS解析设置用脚本来管理,实现了动态解析自有域名的梦想。阿里那边.top域名促销,购买首年只需2元,续费每年也不过16,拿来当私有动态DNS最为合适。然而我看lean兄软件包里的做法,是自建一个完整功能的DDNS的软件包,感觉些许不便,比如不支持IPV6、HTTPS证书等功能,设置方面也比较薄弱,于是有了将阿里云解析功能集成进自带DDNS的想法。这么做的优点,是将管理界面、IP检测、启停、日志等外围功能都交由官方包实现,脚本只需完成最核心的构建云指令并签名,及与阿里服务器之间的通信功能。

目前已实现完全嵌入自带DDNS功能,并做出IPK包,拿来分享给需要的朋友。再次感谢lean兄提供的思路!

脚本及安装包完全开源,放弃版权,欢迎各位集成到自己的固件。软件依赖:

  1. DDNS-scripts(即自带DDNS管理脚本)

  2. luci-app-ddns(可选,自带功能的LUCI界面)

  3. wget(GNU Wget 完成与服务器通信)

  4. openssl-util(openssl工具用于生成签名)

LEDE首页上的DDNS状态一栏

阿里云DDNS脚本IPK安装包下载

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

阿里云DDNS脚本IPK安装包下载

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

阿里云DDNS脚本IPK安装包下载

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

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

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

2021/6/16
1.0.2 版本,建议更新
1、改用curl完成http请求,不再使用wget-ssl,避免一些奇奇怪怪的麻烦。
2、加入自定义TTL,可直接修改脚本文件对应变量,默认600秒(10分钟)。
3、重新梳理整个脚本,完善获取解析记录列表函数。
4、安装包自动判断,适配所有DDNS-Script版本。

http://dl.shuaji.xyz/f/1397394-506397634-2106b9

备用链接: https://pan.baidu.com/s/1sqcRwg0hLS_-WeXT-UG2dQ提取码: 3jks

附件内“ddns-scripts_aliyun.rar”为源码、“ddns-scripts_aliyun_1.0.2-1_all.rar”为安装包

另,有朋友问怎么修改主记录,只要把域名那里设为 @xxx.top 就好。

新版的ddns-scripts日志不显示中文的解决办法:

编辑 /usr/lib/ddns/dynamic_dns_functions.sh,找到 write_log() 函数,将其中的

if [ -n "$password" ]; then
urlencode __MSE "$__MSG"
__MSG=$( echo -e "$__MSE" \
| sed -e "s/$URL_PASS/***PW***/g" \
| sed -e "s/+/ /g; s/%00/\n/g; s/%/\\\\x/g" | xargs -0 printf "%b" )
fi

替换为

if [ -n "$password" ]; then
__MSG=$( echo -e "$__MSG" \
| sed -e "s/$URL_PASS/***PW***/g" | xargs -0 printf "%b" )
fi

本站附件分享,如果附件失效,可以去找找看

诚通网盘附件百度网盘附件


于2021-08-15发布