当前位置: 代码迷 >> 综合 >> 腾讯云域名实现自动化DDNS OpenWrt shell脚本
  详细解决方案

腾讯云域名实现自动化DDNS OpenWrt shell脚本

热度:43   发布时间:2023-12-06 00:18:52.0

腾讯云域名实现自动化DDNS

  • 腾讯云域名实现自动化DDNS脚本 OpenWrt linux

腾讯云域名实现自动化DDNS脚本 OpenWrt linux

操作系统:OpenWrt
使用DDNS来实现静态IP的效果。

其他信息可参考文档腾讯云域名接口api文档
这里是修改域名的脚本,需要自己先添加一条域名解析
域名解析列表
云API秘钥信息
recordId获取
浏览器F12 点击network ,fillter 填写get 点击页面的域名解析
选择这条请求点击response 根据时间搜索,可以快递找到当前的recordId
在这里插入图片描述

在unix系统中,将以上脚本命名为ddns.sh置于/root目录下,然后在命令行中输入crontab -e,将文件末尾添加

*/10 * * * * sh /root/ddns.sh

然后保存即可。该脚本会每10分钟查询一次自己的公网IP,将解析记录修改

如果是直接使用openwrt拨号的话不需要查询自己的ip 脚本可以改成
ip=$(ifconfig pppoe-wan|grep “inet addr:”|awk ‘{print $2}’|tr -d “addr:”)

脚本:

#!/bin/bash
#/usr/bin/ddns
recordId='一般是数字'
domain='你的域名'
subDomain='你希望解析的子域名,例如nas.qq.com,则只输入nas'
sId='你的云API秘钥SecretId'
sKey='你的云API秘钥SecretKey'
signatureMethod='HmacSHA1'region=bj
url="https://cns.api.qcloud.com/v2/index.php"
#获取ip
ip=$(curl -4 ip.sb)
action='RecordModify'
recordType='A'
recordLine='默认'
value=$ip
timestamp=`date +%s`
nonce=$timestamp'1'src=`printf "GETcns.api.qcloud.com/v2/index.php?Action=%s&Nonce=%s&Region=%s&SecretId=%s&SignatureMethod=%s&Timestamp=%s&domain=%s&recordId=%s&recordLine=%s&recordType=%s&subDomain=%s&value=%s" $action $nonce $region $sId $signatureMethod $timestamp $domain $recordId $recordLine $recordType $subDomain $value`#echo 'src: ' $src
signature=`echo -n $src|openssl dgst -sha1 -hmac $sKey -binary |base64`
#echo 'signature: ' $signatureparams=`printf "Action=%s&Nonce=%s&Region=%s&SecretId=%s&SignatureMethod=%s&Timestamp=%s&domain=%s&recordId=%s&recordLine=%s&recordType=%s&subDomain=%s&value=%s" $action $nonce $region $sId $signatureMethod $timestamp $domain $recordId $recordLine $recordType $subDomain $value`#echo 'params: ' $paramscurl -G -d "$params" --data-urlencode "Signature=$signature" "$url"
  相关解决方案