open*w*r*t +dnspod ddns动态解析ipv6 远程控制移动内网路由器

news2024/9/20 9:02:36

1.修改openw*r*t  web https管理端口为8443

修改ipv6 https 监听端口list listen_https '[::]:8443'
cd /etc/config/

vi uhttpd

vi /etc/config/uhttpd

config uhttpd 'main'
        list listen_http '0.0.0.0:80'
        list listen_http '[::]:80'
        list listen_https '0.0.0.0:443'
        list listen_https '[::]:8443'
        option redirect_https '0'
        option home '/www'
        option rfc1918_filter '1'
        option max_requests '3'
        option max_connections '100'
        option cert '/etc/uhttpd.crt'
        option key '/etc/uhttpd.key'
        option cgi_prefix '/cgi-bin'
        list lua_prefix '/cgi-bin/luci=/usr/lib/lua/luci/sgi/uhttpd.lua'
        option script_timeout '60'
        option network_timeout '30'
        option http_keepalive '20'
        option tcp_keepalive '1'
        option ubus_prefix '/ubus'
        list index_page 'cgi-bin/luci'

config cert 'defaults'
        option days '730'
        option key_type 'ec'
        option bits '2048'
        option ec_curve 'P-256'
        option country 'ZZ'
        option state 'Somewhere'
        option location 'Unknown'
        option commonname 'OpenWrt'

2.dnspod自动解析本地wan6 ipv6地址

#!/bin/sh

# DNSPod Token 的 ID
ID=175***

# DNSPod Token ID 所对应的 Token
Token=c7e3081b0c8eeda1e*************

# DDNS 的主域名,例如 ascn.site
domain=qq.com

# DDNS 的域名记录,例如 blog
record=blog

# DDNS 的类型,允许的值为 A 或者 AAAA
record_type=AAAA

# 检测出口 IP 的 API,可选输入,例如 ip.sb,或者我所搭建的 ip.leao9203.xyz,建议优先自己搭建一个
ip_api=$(ip -6 addr show pppoe-wan | grep 'inet6' | grep -v 'fe80:' | awk '{print $2}' | cut -d '/' -f1)
echo $ip_api
# 是否忽略 IP 变化,强制更新。如果启用,请设置为 true
force=false

# 获取输入参数
while getopts i:k:d:r:t:a:f: opts; do
  case ${opts} in
    i) ID=${OPTARG} ;;
    k) Token=${OPTARG} ;;
    d) domain=${OPTARG} ;;
    r) record=${OPTARG} ;;
    t) record_type=${OPTARG} ;;
    a) ip_api=${OPTARG} ;;
    f) force=${OPTARG} ;;
    *) echo "无效参数,请重新输入" && exit 1 ;; 
  esac
done

if [ "${ID}" = "" ]; then
    echo "请输入 DNSPod Token 的 ID"
    echo "可从这里获取 https://console.dnspod.cn/account/token/token"
   exit 1
fi

if [ "${Token}" = "" ]; then
    echo "请输入 DNSPod Token ID 所对应的 Token 值"
    echo "可从这里获取 https://console.dnspod.cn/account/token/token"
   exit 1
fi

if [ "${domain}" = "" ]; then
    echo "请输入域名"
    echo "例如 ascn.site"
   exit 1
fi

if [ "${record}" = "" ]; then
    echo "请输入记录值"
    echo "例如 blog.ascn.site"
    echo "则输入 blog"
   exit 1
fi

if [ "${record_type}" = "" ]; then
    echo "请输入记录类型 A | AAAA"
   exit 1
fi

if [ "${ip_api}" = "" ]; then
    echo "请输入获取 IP 的 API"
    echo "例如 ip.leao9203.xyz"
   exit 1
fi

if [ "${force}" = "" ]; then
     echo "请确认是否强制更新 true | false"
    exit 1
fi

# 本机 IP
ip=

# 获取 IP
if [ "${record_type}" = "AAAA" ]; then
    #ip=$(curl -s -6 "${ip_api}" | grep -v %)
    ##获取 pppoe-wan接口上的IPV6地址
	ip=$(ip -6 addr show pppoe-wan | grep 'inet6' | grep -v 'fe80:' | awk '{print $2}' | cut -d '/' -f1)
	echo $ip
elif [ "${record_type}" = "A" ]; then
    ip=$(curl -s -4 "${ip_api}" | grep -v %)
fi

# 运行目录,以及 IP 文件
config_path=dnspod-ddns
ip_file=${config_path}/${record}.${domain}.ip.txt

# 判断是否存在配置目录
if [ ! -d "${config_path}" ]; then
     mkdir -p "${config_path}"
fi

# 判断是否存在 IP 文件、IP 是否更改
if [ ! -f "${ip_file}" ]; then
     echo "${ip}" >> "${ip_file}"
elif [ "$(cat "${ip_file}")" = "${ip}" ] && [ ! "${force}" = true ]; then
     echo "IP 未改变,将不进行更新"
    exit 0
fi


# 组合出 DNSPod 的新鉴权 API 
#curl https://dnsapi.cn/Domain.List -d "login_token=175***,c7e3081b0c8eeda1e68******&format=json"

login_token=${ID},${Token}
#创建域名解析
curl -X POST https://dnsapi.cn/Record.Create -d 'login_token=${login_token}&format=json&domain_id=93845109&sub_domain=${record}&record_type=AAAA&record_line_id=10%3D0&value=1.1.1.1'

 
echo $login_token
# 获取 DNSPod 的记录 ID
#record_id=$(curl -s -X POST https://dnsapi.cn/Record.List -d "login_token=${login_token}" -d "domain=${domain}" -d "format=xml" | grep -B 6 "${record}" | grep id | sed -e 's/<[^>]*>//g')

record_id=$(curl -s -X POST https://dnsapi.cn/Record.List -d "login_token=${login_token}" -d "domain=${domain}" -d "format=xml")
curl -s -X POST https://dnsapi.cn/Record.List -d "login_token=${login_token}" -d "domain=${domain}" -d "format=xml"
echo $record_id

# 更新 IP
#*/10  * * * * /root/dnspod-ddns.sh  添加定时任务
#echo "login_token=${login_token}&domain=${domain}&format=xml&record_id=${record_id}&sub_domain=${record}&record_type=${record_type}&record_line_id=0&value=${ip}"

curl -s -X POST https://dnsapi.cn/Record.Modify -d "login_token=${login_token}&domain=${domain}&format=xml&record_id=1532596793&sub_domain=${record}&record_type=${record_type}&record_line_id=0&value=${ip}"

3.定时任务

*/10  * * * * /root/dnspod-ddns.sh
<?xml version="1.0" encoding="UTF-8"?>
<dnspod>
<status>
<code>1</code>
<message><![CDATA[操作已经成功完成]]></message>
<created_at>2023-07-03 18:17:54</created_at>
</status>
<record>
<id>1532596793</id>
<name>mkjy</name>
<value>2409:8a38:b202:******************:ddc6</value>
<status>enable</status>
<weight></weight>
</record>
</dnspod>

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/715334.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

视觉SLAM十四讲需要提前知道的数学基础知识

学习视觉SLAM十四讲之前的必备数学基础知识 1. 正交矩阵2. 线性关系3. 求矩阵的逆4. 叉乘5.反对称矩阵6. 复数 1. 正交矩阵 定义&#xff1a; 设n阶矩阵A满足AATATAI &#xff0c;则称A为正交矩阵 性质&#xff1a; 以下为手写&#xff0c;从小字丑&#xff0c;请多担待。。 …

第二阶段、数据库的使用

数据库&#xff1a;在这里一mysql为例 首先使用数据库就必须安装 安装数据库&#xff08;mysql&#xff09; 数据库的安装和下载 数据库的使用和命令 连接和断开服务器 启动mysql服务&#xff1a; sudo service mysql start 停止mysql服务&#xff1a; sudo service mysql …

加载Bert预训练模型时报错:huggingface_hub.utils._validators.HFValidationError

具体报错情况如下&#xff1a; huggingface_hub.utils._validators.HFValidationError: Repo id must be in the form repo_name or namespace/repo_name: ./bert/bert_base_cased_ICEWS14. Userepo_typeargument if needed. 很简单&#xff0c;我download下来的代码没有并没有…

Java中生成指定长度验证码

Java中生成指定长度验证码 1.方法一:执行效率高 /*** 生成指定位数验证码,纯数字运算效率最高** param maxSize* return*/public static Long generateRandomCode(int maxSize) {if (maxSize < 0) {throw new BizException(ErrorCodeEnum.PARAM_ERROR);}//小数点后16位的do…

Mysql内外连接的详细用法与示例

当处理关系型数据库时&#xff0c;连接操作是非常常见且重要的。MySQL提供了多种连接类型&#xff0c;其中包括内连接、外连接和交叉连接。在本篇博文中&#xff0c;我们将详细介绍MySQL中内连接和外连接的用法&#xff0c;并提供一些复杂的例子来帮助理解。 文章目录 1.内连接…

计网之运输层

因特网协议概述 常用协议应用层HTTP&#xff08;超文本传输协议&#xff09;、FTP&#xff08;文件传输协议&#xff09;、SMTP&#xff08;简单邮件传输协议&#xff09;、DNS&#xff08;域名系统&#xff09;、DHCP&#xff08;动态主机配置协议&#xff09;、SNMP&#xff…

Texlive2023安装过程中点击install-tl-windows.bat一直闪退

我安装了Texlive的镜像&#xff0c;因为数学建模会用到&#xff0c;在安装过程中我遇到了一个问题&#xff1a; install-tl-windows.bat一直闪退 当我解压完texlive.iso的时候,正常应该点击.bat文件就能出现页面&#xff0c;但是我cmd窗口一直闪退 怎样解决&#xff1f; 这个…

为什么从 MVC 到 DDD,架构的本质是什么?

作者&#xff1a;小傅哥 博客&#xff1a;https://bugstack.cn 沉淀、分享、成长&#xff0c;让自己和他人都能有所收获&#xff01;&#x1f604; 本文来自于小傅哥新编写的 《Java简明教程》 系列内容&#xff0c;本教程意在于通过简单、明了、清晰的成体系内容&#xff0c;教…

UE4/5用GeneratedDynamicMeshActor创建多个模型,并发生Boolean(两个网格体之间的,有3种模式)

目录 制作 只创建一个球&#xff1a; 效果&#xff1a; 制作多个效果&#xff1a; 制作&#xff1a; 效果&#xff1a; 代码&#xff1a; 一代码&#xff1a; 二代码&#xff1a; 制作 假如我们创建两个模型&#xff0c;第一个是之前就创建的正方体&#xff0c;而第二…

PHP:查询数据库,并将数据传给前端(在script中直接嵌套php语句)

例子&#xff1a;在php中定义数据&#xff0c; 并将数据通过js在控制台输出 <script><?php// 在这里插入你的PHP代码&#xff0c;例如执行查询操作获取数据$data array(array(name > Alice, age > 25),array(name > Bob, age > 30),array(name > Ch…

(7)深度学习学习笔记-卷积层

文章目录 前言一、实现二维互相关和卷积层二、用nn的Conv2d给定输入X和输出Y&#xff0c;生成核K1.引入库2.简单实现 来源 前言 在卷积层中&#xff0c;输入张量和核张量通过互相关运算产生输出张量。 阴影部分是第一个输出元素&#xff0c;以及用于计算输出的输入张量元素和…

【直播预告】HarmonyOS极客松赋能直播第四期:HarmonyOS开发经验分享

直播预约通道&#xff1a;【直播预告】HarmonyOS极客松赋能直播第四期&#xff1a;HarmonyOS开发经验分享

【数据库】使用DBever连接人大金仓数据库

下载安装DBever 首先需要下载并安装DBever&#xff0c;可以在DBever官网上下载最新版的安装程序&#xff0c;根据提示进行安装即可。 下载驱动程序 首先需要从人大金仓官方网站下载适用于DBever的驱动程序。下载完成后&#xff0c;将驱动程序保存到本地计算机上。 添加驱动…

docker deploy rancher

docker run --privileged -d --name rancher --restartunless-stopped -p 80:80 -p 443:443 rancher/rancher:latest docker ps docker logs 4d890c673011 2>&1 | grep “Bootstrap Password:”

LCD屏幕显示文字(含交叉编译freetype字体矢量库)

文章目录 字符的编码方式编码与字体ASCIIANSIUNICODEUNICODE 编码实现 ASCII 字符的点阵显示ASCII字符文件主要代码 中文字符的点阵显示指定编码格式汉字的点阵数据&#xff08;汉字区位码&#xff09; 交叉编译 freetype 矢量库程序运行的一些基础知识怎么确定“系统目录”&am…

【08】STM32·HAL库开发-HAL库介绍 | STM32Cube固件库介绍 | HAL库框架结构 | 如何使用HAL库及使用注意事项

目录 1.初识HAL库&#xff08;了解&#xff09;1.1CMSIS简介1.2HAL库简介 2.STM32Cube固件包浅析&#xff08;了解&#xff09;2.1如何获取STM32Cube固件包&#xff1f;2.2STM32Cube固件包文件夹简介2.3CMSIS文件夹关键文件2.3.1CMSIS标准规定软件包目录2.3.2Device和Include文…

背光图像增强论文调研

背光图像增强 M. Akai, Y. Ueda, T. Koga and N. Suetake, “A Single Backlit Image Enhancement Method For Improvement Of Visibility Of Dark Part,” 2021 IEEE International Conference on Image Processing (ICIP), Anchorage, AK, USA, 2021, pp. 1659-1663, doi: 10…

山西电力市场日前价格预测【2023-07-05】

日前价格预测 预测明日&#xff08;2023-07-05&#xff09;山西电力市场全天平均日前电价为168.88元/MWh。其中&#xff0c;最高日前电价为334.22元/MWh&#xff0c;预计出现在20: 30。最低日前电价为0.00元/MWh&#xff0c;预计出现在09: 45-17: 15。 以上预测仅供学习参考&a…

【Git】中文显示数字的问题的解决方案

目录 问题截图解决方案 问题截图 运行git status命令&#xff0c;会出现图片中不正常显示中文的问题 解决方案 设置终端: 右键窗口头部 -> Options...执行命令: git config --global core.quotepath false

电脑屏幕监控软件是什么?有哪些功能?

电脑屏幕监控软件是一种用于监视和记录电脑屏幕活动的工具。它可以捕捉屏幕上的所有操作&#xff0c;包括键盘输入、鼠标点击、应用程序使用等。这些软件通常被用于家庭、教育机构和企业等环境中&#xff0c;以确保电脑的安全和监督员工或孩子的活动。 为什么需要电脑屏幕监控软…