90 次浏览
1、安装DDNS插件
opkg update
opkg install luci-app-ddns也可通过Luci安装。
2、添加自定义阿里云脚本
OpenWrt上的新版ddns插件已移除阿里云配置,需自行添加
创建并编辑脚本:
nano /usr/lib/ddns/update_aliyun.sh内容如下:
#!/bin/sh
# 阿里云 DDNS 更新脚本 for OpenWrt
# 依赖: curl, coreutils-date, coreutils-base64
DOMAIN="$1"
SUBDOMAIN="$2"
IP="$3"
ACCESS_KEY="$4"
ACCESS_SECRET="$5"
API_URL="https://alidns.aliyuncs.com"
TIMESTAMP=$(date -u +"%Y-%m-%dT%H%%3A%M%%3A%SZ")
RAND=$RANDOM
# 生成签名函数
percentEncode() {
echo -n "$1" | sed -e "s/\+/%20/g;s/\*/%2A/g;s/%7E/~/g;s/ /%20/g"
}
# 生成签名
sign() {
local StringToSign="GET&%2F&$(percentEncode "AccessKeyId=$ACCESS_KEY&Action=$1&DomainName=$DOMAIN&Format=json&RR=$SUBDOMAIN&SignatureMethod=HMAC-SHA1&SignatureNonce=$RAND&SignatureVersion=1.0&Timestamp=$TIMESTAMP&Type=A&Value=$IP&Version=2015-01-09")"
local Signature=$(echo -n "$StringToSign" | openssl dgst -sha1 -hmac "${ACCESS_SECRET}&" -binary | base64)
percentEncode "$Signature"
}
# 执行更新
ACTION="UpdateDomainRecord"
SIGNATURE=$(sign "$ACTION")
curl -s "${API_URL}?AccessKeyId=${ACCESS_KEY}&Action=${ACTION}&DomainName=${DOMAIN}&Format=json&RR=${SUBDOMAIN}&Signature=${SIGNATURE}&SignatureMethod=HMAC-SHA1&SignatureNonce=${RAND}&SignatureVersion=1.0&Timestamp=${TIMESTAMP}&Type=A&Value=${IP}&Version=2015-01-09" >/dev/null 2>&1
为脚本添加执行权限:
chmod +x /usr/lib/ddns/update_aliyun.sh3、配置DDNS
修改配置文件:
nano /etc/config/ddns添加ipv4配置块:
config service 'aliyun_ddns'
option enabled '1'
option lookup_host 'nas.example.com' # 替换为你的完整子域名
option domain 'example.com' # 主域名
option username '你的AccessKeyID'
option password '你的AccessKeySecret'
option ip_source 'web'
option ip_url 'https://api.ipify.org'
option interface 'wan'
option force_interval '72'
option retry_interval '60'
option use_https '1'
option update_script '/usr/lib/ddns/update_aliyun.sh'
添加ipv6配置块:
config service 'aliyun_ddns_ipv6'
option enabled '1'
option lookup_host 'nas.example.com'
option domain 'example.com'
option username '你的AccessKeyID'
option password '你的AccessKeySecret'
option ip_source 'network'
option ip_network 'wan6'
option use_ipv6 '1'
option update_script '/usr/lib/ddns/update_aliyun.sh'
4、测试
手动触发更新:
/etc/init.d/ddns restart
/usr/lib/ddns/dynamic_dns_updater.sh aliyun_ddns查看日志:
logread -e ddns阿里云解析验证:
登录阿里云解析网站确认解析是否更新。