RSS订阅专注X86/ARM架构技术
博客交流QQ群693563350 赞助本站
你现在的位置:网站首页 / Linux / 正文内容

利用CloudXNS DDNS脚本自建动态域名教程

3790 Linux | 2018年06月26日

CloudXNS DDNS域名记录更新脚本Github项目地址:https://github.com/Diaoji/CloudXNS-DDNS_Bash

运行该脚本前 , 请确保您的环境有以下命令/软件

curl

cat

awk

md5sum

date

tr

使用方法

下载 https://github.com/Diaoji/CloudXNS-DDNS_Bash/archive/master.zip

解压 zip

修改解压后的 account.txt (不要使用Windows自带的记事本修改!!!!)

account.txt第一行填API KEY

account.txt第二行填SECRET KEY

account.txt第三行填自己的域名

如下图

QQ截图20180728130114.jpg

将解压后的 account.txt 和 main.sh 上传到 Unix/Linux 环境中 (路由器/树莓派/手机/等设备) , 两个文件必须在同一目录下

给予 main.sh 可执行权限

chmod +x main.sh

使用绝对路径执行 main.sh For example : root@openWrt# /opt/CloudXNS-DDNS/main.sh

执行完后会输出相应结果 , 如显示 Update DDNS record success 则说明更新成功 其他问题请参考CloudXNS错误码来进行修改 account.txt


参考链接 : https://www.cloudxns.net/Support/lists/cid/17

main.sh脚本代码

#!/bin/sh
work_dir=$(dirname $0)
api_key=$(cat $work_dir/account.txt | tr "\n" " " | awk '{print $1}')
secret_key=$(cat $work_dir/account.txt | tr "\n" " " | awk '{print $2}')
domain=$(cat $work_dir/account.txt | tr "\n" " " | awk '{print $3}')

public_ip=$(wget -qO - http://myip.ipip.net/ | awk '{print $2}' | tr ":" " " | awk '{print $2}')

url="https://www.cloudxns.net/api2/ddns"
time=$(date -R)
data="{\"domain\":\"${domain}\",\"ip\":\"${public_ip}\",\"line_id\":\"1\"}"
mac=$(echo -n $api_key$url$data$time$secret_key | md5sum | awk '{print $1}')

result=$(curl -s -k -X POST \
			-H "API-KEY:$api_key" \
			-H "API-REQUEST-DATE:$time" \
			-H "API-HMAC:$mac" \
			-H "API-FORMAT:json" \
			-d "$data" \
			$url | grep -v "success")

if  [ ! $result ] ;then
	echo "Update DDNS record success"
else
	echo "Error : debug info"
	echo $result
fi

建议

如果你的家用带宽公网IP会一直变动的话 , 将A记录的TTL修改到60 并在设备上设置cron 例如


[root@diaoji-pi ~]# crontab -e

*/5 * * * * /opt/CloudXNS-DDNS/main.sh <- 这个路径取决你自己修改

 ^

每5分钟 更新执行一次更新脚本

上一篇:crontab -e提示no crontab for root的解决办法

下一篇:二级域名泛解析方法

猜你喜欢