听人说CloudXNS解析速度比较快,测试了一下,果然比Dnspod快。于是把网站解析到了CloudXNS。

操作步骤:
1.用winscp把脚本放置到OpenWRT目录里,如 /root/cloudxns.sh
2.然后添加计划任务,如 */10 * * * * /root/cloudxns.sh

#!/bin/sh
# 参考资料:
# https://github.com/openwrt/packages/blob/master/net/ddns-scripts/samples/update_sample.sh
# https://github.com/anjianshi/cloudxns-ddns/blob/master/cloudxns.sh
# https://github.com/anjianshi/openwrt_cloudxns_ddns
# https://github.com/kuretru/CloudXNS-DDNS/
#
# Requirements:
# curl
#API URL
API_URL="https://www.cloudxns.net/api2/ddns"

#API Key
API_KEY=""

#API Key
API_SECRET_KEY=""

#Domain name
#e.g. domain="www.cloudxns.net."
domain=""

DATE=$(date)
PARAM="{\"domain\":\"${domain}\"}"
HMAC=$(echo -n "$API_KEY$API_URL$PARAM$DATE$API_SECRET_KEY"|md5sum|cut -d" " -f1)
RESULT=$(curl -k -s $API_URL --data $PARAM -H "API-KEY: $API_KEY" -H "API-REQUEST-DATE: $DATE" -H "API-HMAC: $HMAC" -H 'Content-Type: application/json')

经过测试发现上面设置有个问题,就是每次开机后10分钟后才能解析,有没有什么方法可以一旦发现外网ip变自动执行脚本呢?
于是google一下发现以下方法,废话不多说,上干货。

# 放到 /etc/hotplug.d/iface/99-cloudxns 里面
#!/bin/sh

case "$ACTION" in
    ifup)
        /root/cloudxns.sh
        ;;
esac