腾讯云域名 OpenWrt 自动更新IP shell脚本

腾讯云域名 OpenWrt 自动更新IP shell脚本

需要这个功能 然后找了很多资料都没有 看到一篇类似的本文 原文链接:https://blog.csdn.net/qq_38106751/article/details/108017663
但是原文中的API接口和recordId获取方式都已经无法使用了 这里给出新办法
操作系统:OpenWrt
实现功能:
1、使用DDNS来实现静态IP的效果。
2、定时查询ip然后跟出口IP(wan ip)对比 如果不同才修改

其他信息可参考文档腾讯云域名接口api文档
一、首先自己去添加一条域名和解析记录
二、recordId获取
在域名修改界面按浏览器F12 点击network ,fillter 填写Record.list 然后刷新页面
选择这条请求点击response 往后拉一点,可以快速找到当前的recordId


在Openwrt 的计划任务中添加

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

然后将以下脚本命名为ddns.sh置于/root目录下,可以用WinSCP等软件传到/root (注意是根下面的root文件夹 其他路径也可以 对应修改上面的命令)

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

其中
login_token=你的token数字部分,字符串部分
例如 login_token=1231,238159b0ab0d11941dbc43608553a73fa
domain_id=域名IP(直接可以看到)&record_id=刚刚查询到的 组合起来就是

login_token=123123,123159b0ab0d11941dbc43608553a7123&format=json&domain_id=123123&record_id=123123

中间的123123 修改成自己的,两处需要修改

#!/usr/bin/ash
x=$(curl -X POST https://dnsapi.cn/Record.Info -d 'login_token=123123,123159b0ab0d11941dbc43608553a7123&format=json&domain_id=123123&record_id=123123' -H 'Content-Type:application/x-www-form-urlencoded' | jq .record.value)
b=$(echo $x|sed 's/\"//g')
ipw=$(curl -4 ip.sb)
if [ $b == $ipw ];then echo "true";else curl -s -X  POST https://dnsapi.cn/Record.Modify -d ' login_token=123123,123159b0ab0d11941dbc43608553a7123&format=json&domain_id=123123&record_id=123123&record_line_id=0&record_type=A&value='$ipw -H 'Content-Type:application/x-www-form-urlencoded' ; fi
echo "done"

注意 第一次使用openwrt的任务计划 需要手动重启cron服务(一般在启动项里面)

文中用到了jq命令 openwrt如果没有安装请下载安装
https://downloads.openwrt.org/releases/packages-21.02/x86_64/packages/jq_1.6-1_x86_64.ipk
这个是21.0.2版本的openwrt x86平台用的jq 需要其他版本请根据需要到 https://pkgs.org/download/jq 进行下载安装

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值