本文也是基于上面的案例,利用自己的域名从而实现动态DDNS

无需安装客户端,直接一个定时任务跑shell脚本即可,快速支配,一次支配,终生利用

二、所需环境一个域名

我的域名是在腾讯云上面购买的,如果你没有域名的话,首先要先购买一个域名;推举利用腾讯云域名

dnspodapiphpDNSpod实现动态域名解析的最佳实践 SQL

宽带公网ip

江苏这边3大运营商里,移动和 电信 是不供应公网IP的【投诉申请都没用】,哈哈; 剩下一个 你懂的

三、实现步骤3.1 进入dnspod官网管理掌握台

账号登录 - DNSPod-免费智能DNS解析做事商-电信_网通_教诲网,智能DNS

创建一条 A记录解析,IP地址暂时随便填就行: 

主机记录名称 便是你的 动态DDNS域名,比如 我这里的 home.srebro.cn ; 记录值: 便是你家中的公网IP,可以先谁便填写一个

3.2 创建腾讯云API 密钥创建地址: https://console.dnspod.cn/account/token/apikey

新建密钥,拿起小本本记下密钥,后面要用

3.3 利用腾讯云-API Explorer在线调试3.3.1 获取域名的解析记录列表

通过接口 DescribeRecordList查到对应的解析记录列表以及对应的 RecordId

在线调试地址: https://console.cloud.tencent.com/api/explorer?Product=dnspod&Version=2021-03-23&Action=DescribeRecordList输入:Domain 域名,srebro.cnSubdomain 解析记录的主机头, 便是你的 动态DDNS域名,比如 我这里的 home.srebro.cn ;输出:得到 RecordId ,记录 ID ,后面须要利用 ,小本本记下

3.3.2 在线调试,修正域名记录值

利用得到的RecordId 来仿照修正A记录值

在线调试地址: https://console.cloud.tencent.com/api/explorer?Product=dnspod&Version=2021-03-23&Action=ModifyRecord输入:Domain 域名;srebro.cnRecordType ,记录类型;A 记录RecordLine , 记录线路; 保持默认Value ,记录值,如 IP : 200.200.200.200 【便是你家中的公网IP,可以先随便填写一个】RecordId ,记录 ID , 刚刚我们通过接口 获取域名的解析记录列表查到解析记录 home.srebro.cn对应的 RecordId 值Subdomain 解析记录的主机头, 便是你的 动态DDNS域名,比如 我这里的 home.srebro.cn输出:可以看到右边的相应结果,并且可以看到域名记录的值也已经被修正了;

3.3.3 通过在线调试,修正域名记录值得到代码示例

还是刚刚一样的步骤,我们再修正域名记录值里,通过填写一定的参数,可以得到shell 的代码示例

3.4 编写脚本

拿到刚刚调试的shell 脚本,轻微的改动下,把 Value ,记录值【便是你家中的公网IP】通过 https://ipv4.rehi.org/ip 获取到IPV4 的公网地址。
这里用REL_IP变量表示,其次便是定义 secret_id 和 secret_key 【上面创建腾讯云API 密钥已经拿到了】

修正后的脚本,大致如下,各位自行调度

须要把稳,脚本里须要有 RecordId,记录 ID , 便是我们通过接口 获取域名的解析记录列表查到解析记录 home.srebro.cn对应的 RecordId 值

vim /home/application/dnspod/dnspod.sh

#!/bin/bashsecret_id="xxxxxxxxxxxxx"secret_key="xxxxxxxxxxxxxxxxxxxxxxxxx"token=""REL_IP=`curl -s https://ipv4.rehi.org/ip`service="dnspod"host="dnspod.tencentcloudapi.com"region=""action="ModifyRecord"version="2021-03-23"algorithm="TC3-HMAC-SHA256"timestamp=$(date +%s)date=$(date -u -d @$timestamp +"%Y-%m-%d")payload="{\"Domain\":\"home.srebro.cn\",\"RecordType\":\"A\",\"RecordLine\":\"默认\",\"Value\":\"$REL_IP\",\"RecordId\":11112223333,\"SubDomain\":\"all\"}"# 步骤 1:拼接规范要求串 http_request_method="POST"canonical_uri="/"canonical_querystring=""canonical_headers="content-type:application/json; charset=utf-8\nhost:$host\nx-tc-action:$(echo $action | awk '{print tolower($0)}')\n"signed_headers="content-type;host;x-tc-action"hashed_request_payload=$(echo -n "$payload" | openssl sha256 -hex | awk '{print $2}')canonical_request="$http_request_method\n$canonical_uri\n$canonical_querystring\n$canonical_headers\n$signed_headers\n$hashed_request_payload"echo "$canonical_request"# 步骤 2:拼接待署名字符串 credential_scope="$date/$service/tc3_request"hashed_canonical_request=$(printf "$canonical_request" | openssl sha256 -hex | awk '{print $2}')string_to_sign="$algorithm\n$timestamp\n$credential_scope\n$hashed_canonical_request"echo "$string_to_sign"# 步骤 3:打算署名 secret_date=$(printf "$date" | openssl sha256 -hmac "TC3$secret_key" | awk '{print $2}')echo $secret_datesecret_service=$(printf $service | openssl dgst -sha256 -mac hmac -macopt hexkey:"$secret_date" | awk '{print $2}')echo $secret_servicesecret_signing=$(printf "tc3_request" | openssl dgst -sha256 -mac hmac -macopt hexkey:"$secret_service" | awk '{print $2}')echo $secret_signingsignature=$(printf "$string_to_sign" | openssl dgst -sha256 -mac hmac -macopt hexkey:"$secret_signing" | awk '{print $2}')echo "$signature"# 步骤 4:拼接 Authorization authorization="$algorithm Credential=$secret_id/$credential_scope, SignedHeaders=$signed_headers, Signature=$signature"echo $authorization# 步骤 5:布局并发起要求 curl -XPOST "https://$host" -d "$payload" -H "Authorization: $authorization" -H "Content-Type: application/json; charset=utf-8" -H "Host: $host" -H "X-TC-Action: $action" -H "X-TC-Timestamp: $timestamp" -H "X-TC-Version: $version" -H "X-TC-Region: $region" -H "X-TC-Token: $token"测试脚本

可以看到记录值,已经修正了

bash /home/application/dnspod/dnspod.sh

3.5 添加定时任务

定时任务如下:

每三十分钟,实行一次;可以查看DNSpod 的云平台操作日志,查看详细的记录变更日志

/30 /home/application/dnspod/dnspod.sh

四、后续

有了自己的DDNS ,内网路由器再配置一个端口转发,再搭配公网云做事器结合利用,代理嘎嘎发射,切实其实不要太舒畅 哈哈,懂得都懂