Openwrt基于ipv6更新DNS的cloudflare_shell脚本

这篇具有很好参考价值的文章主要介绍了Openwrt基于ipv6更新DNS的cloudflare_shell脚本。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近折腾了一下内网穿透,发现如果有ipv6的话,防火墙开启相应端口,可以直接从外面用ipv6访问内网服务器,虽然省去了ipv4的端口转发等麻烦事儿,但是ipv6还是经常变动的,所以搞了个免费域名,在cloudflare托管了。然后在路由器用shell 写一个更新dns的脚本,定时运行,更新托管的域名对应设备的最新ipv6地址,就可以在外面随时访问路由器管理luci界面了,下面贴一下脚本,做个备份,方便不时之需。

如果你也有同样的需求,可以参考一下,要修改的地方我都注释了,要用这个脚本,前提是你得有一个域名,最好对应的ssl也申请了,因为把路由器对外访问放开了,https+ssl 还是要安全些,然后你的域名在cloudflare托管好了,并且你对怎么在cloudflare获取zone_id, dns_id, apikey 这些都很熟悉,不熟悉的话就去度娘教程。

另外,因为cloudflare返回值是json格式,所以最好安装一下jq这个工具,可以用下面的命令安装:

opkg update && opkg install jq

脚本如下:

#!/bin/sh

updns() {
	while getopts ':a:d:e:i:p:z:' OPT; do
		case $OPT in
		a) local api_key=$OPTARG ;;
		d) local ddns_nm=$OPTARG ;;
		e) local e_mail=$OPTARG ;;
		i) local proj_id=$OPTARG ;;
		p) local ip=$OPTARG ;;
		z) local zone_id=$OPTARG ;;
		esac
	done
	if [ ! ${api_key} ] || [ ! ${ddns_nm} ] || [ ! ${e_mail} ] || [ ! ${proj_id} ] || [ ! ${ip} ] || [ ! ${zone_id} ]; then
		echo 1
		return 1
	fi
	res=$(curl -X PUT "https://api.cloudflare.com/client/v4/zones/${zone_id}/dns_records/${proj_id}" \
		-H "X-Auth-Email: ${e_mail}" \
		-H "X-Auth-Key: ${api_key}" \
		-H "Content-Type: application/json" \
		--data '{"type":"AAAA","name":"'"${ddns_nm}"'","content":"'"${ip}"'","ttl":7200,"proxied":false}' -s |
		jq .success | tr 'A-Z' 'a-z')
	if [ ${res} == 'true' ]; then
		echo 0
		return 0
	else
		echo 2
		return 2
	fi
}

hp=1
while getopts ':c' OPT; do
	case $OPT in
	c) hp=0 ;;
	esac
done
ipdat='/root/ipv6_addr_dat' # 这个是临时保存ipv6地址的文件,你可以自定义位置和名称
subj="ipv6_ddns,$(date +%Y%m%d%H%M%S)"
devx="wlan1" # 你的拥有运营商ipv6设备名,比如我是中继wifi上网的,wlan1拥有ipv6地址
ipdatc=$(head -n 1 ${ipdat})
ipv6=$(ip -6 addr show dev ${devx} | grep "/128 scope global" | awk '{print $2}' | awk -F "/" '{print $1}')
if [ ! ${ipv6} ]; then
	echo "${subj},${devx} has no ipv6 addr..." | logger -t ddns
	exit 1
fi

if [ "${ipv6}" != "${ipdatc}" ]; then
	echo ${ipv6} >${ipdat}
	xt=0
else
	xt=1
fi

if [ ${hp} -eq 0 ] || [ ${xt} -eq 0 ]; then
	pid='37iy7chsa0wp2ulzezraya6izt82keow'       # 你在cloudflare上的dns id
	zid='58ga8r5homn2myzw1qkoanwg051m2xa2'       # 你在cloudflare 上的域名zone_id
	email='example@mail.com'                     # 你在cloudflare上的账号邮箱
	akey='0fwx0m388nrfy16zgd8gk5yxmudcuop01g3hr' # 你在cloudflare上的api key
	dnm='example.com.cn'                         # 你在cloudflare上托管的域名
	res=$(updns -a "${akey}" -d "${dnm}" -e "${email}" -i "${pid}" -p "${ipv6}" -z "${zid}")
	if [ ${res} -eq 0 ]; then
		echo "${subj},${devx} [${ipv6}] upd successful..." | logger -t ddns
		exit 0
	else
		echo "${subj},${devx} ipv6 addr update failed..." | logger -t ddns
		exit 3
	fi
else
	echo "${subj},${devx} ipv6 addr has not changed, no need to be update..." | logger -t ddns
	exit 2
fi

脚本每次运行都会先对比当前设备ipv6地址和保存在 /root/ipv6_addr_dat (这个文件你可以在脚本里面自定义位置和名称)里面得ipv6地址,如果不同,就把设备ipv6地址写入这个文件,如果相同就不会再更新cloudflare。当然,如果你要强制更新,可以在运行脚本时加一个可选参数-c,就会主动更新了,假如脚本名称为ipv6_ddns.sh, 运行时 ./ipv6_ddns.sh -c 就会强制更新, ./ipv6_ddns.sh 就会有判断得更新。

PS: 补充一下,怎么开启防火墙ipv6端口。

进入luci管理界面—网络—防火墙—通信规则,点下面的添加按钮。
cloudflare ddns ipv6,智能路由器,网络
名称,端口,自己指定,其他照着选择和填写就可以了。

cloudflare ddns ipv6,智能路由器,网络
cloudflare ddns ipv6,智能路由器,网络
折腾之前最后多搜索学习相关教程,好了!文章来源地址https://www.toymoban.com/news/detail-529785.html

到了这里,关于Openwrt基于ipv6更新DNS的cloudflare_shell脚本的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • OpenWrt 软路由 IPV6设置

    OpenWrt 软路由 IPV6设置

    本例用的是 esir 大神的固件,版本是高大全 OpenWrt R21.8.6 GDQ v9.1[2021] 背景: 因为宽带是中国移动,光猫已改为桥接,通过软路由拨号,获取的IPv4是一个内网地址,没有公网的动态IP,打电话到移动客服说IPv4资源枯竭了,家庭宽带改不了公网IP,考虑到后面要做DDNS,端口映射

    2024年02月17日
    浏览(21)
  • OpenWrt之IPv6设置详解

    OpenWrt之IPv6设置详解

    最近电信终于肯下发v6的地址了, 得为路由器配置一下了, 之前一直是处于关闭的状态, 今天重新设置回去. 从此有了v4与v6双公网地址. 光猫设置为 桥接 路由器设置为 PPPoE拨号 其他设备 均通过 无线/有线 方式接入路由器 以下内容全在OpenWrt 22.03及以上版本进行 选择 网络 - 接口

    2024年02月09日
    浏览(15)
  • OpenWrt路由器设置IPv6域名动态解析,同时实现IPv4设备访问IPv6节点

    OpenWrt路由器设置IPv6域名动态解析,同时实现IPv4设备访问IPv6节点

    前不久刚写了一篇《OpenWrt路由器设置域名动态解析手把手教程》,对ipv4动态解析有了基本的认识。但随着ipv4地址的匮乏,很多地方已经不提供公网的动态ip了,只有ipv6公网地址可以访问了。于是想在上一篇博文的基础上补充ipv6的设置,并增加ipv4设备访问ipv6地址的解析方法

    2024年02月08日
    浏览(12)
  • OpenWrt 软路由 IPV6 配置 DDNS

    OpenWrt 软路由 IPV6 配置 DDNS

    一、申请 dynv6 账号 1、去官网注册一个账号,不过人机验证那块需要 \\\"梯子\\\" 才能注册成功 Free dynamic DNS for IPv6 2、注册成功后,创建一个 Domain,这是我已经创建好的 3、输入一个你自己的域名,后缀选择 dynv6.net  4、创建好后,点到这个域名下面,切换到 instructions 获取 密码

    2024年02月12日
    浏览(10)
  • 在OpenWrt上配置原生IPv6 NAT,,实现校园网路由器使用ipv6

    在OpenWrt上配置原生IPv6 NAT,,实现校园网路由器使用ipv6

    我的环境 网络:教育网原生双栈,IPv4地址固定,IPv6地址自动获取 固件版本:OpenWrt Chaos Calmer 15.05-rc2 r45918 内核版本:3.18.14 准备工作 步骤如下,将网线插入校园网墙上的网口,另一端连接上电脑。之后按照以下示例操作。(以下步骤同样适用于用来实现电脑连接宿舍有线网

    2024年02月06日
    浏览(11)
  • OpenWRT中的DDNS-GO无法获取软路由IPV6地址

    OpenWRT中的DDNS-GO无法获取软路由IPV6地址

    移动的宽带没有公网ipv4地址,但可以获得公网ipv6地址,这就让远程访问软路由成为了可能,但DDNS-GO却报错: 2024/01/31 02:21:07 连接失败! 点击查看接口能否返回IPv6地址, 参考说明:点击访问 2024/01/31 02:21:07 错误信息: Get \\\"https://speed.neu6.edu.cn/getIP.php\\\": dial tcp6: lookup speed.neu6.edu.cn

    2024年03月13日
    浏览(16)
  • OpenWrt 软路由解析公网IPV6域名访问家庭NAS的问题答疑

    OpenWrt 软路由解析公网IPV6域名访问家庭NAS的问题答疑

    1、非要使用 Padavan 或者 OpenWrt固件的软路由才能IPV6公网访问吗? 答:这个并不是这样的,一般家用路由器都无法放行防火墙规则,这种情况当然无法实现IPV6公网访问,但是少部分路由器是可以的,只要有防火墙设置功能基本都可以,再打开路由器的端口映射,DZM,UPNP这些就

    2024年02月07日
    浏览(26)
  • 动态更新阿里云DDNS解析记录的IPv6地址,随时随地用域名远程访问自己的电脑【如何远程访问家里的电脑】

    动态更新阿里云DDNS解析记录的IPv6地址,随时随地用域名远程访问自己的电脑【如何远程访问家里的电脑】

    [2023-04-03 19:56]: 放弃了安卓版,修正了文章中的一些错误,并改用了ddns-go [2022-09-21 23:59]: 此工具后续将推出安卓版,敬请期待 [2022-09-21 03:48]: 之前与群友“不将就”的讨论发现了一大堆问题,软件经行了大改,请重新下载安装。 [2022-09-20 18:22]: 发现并修复了一个bug,I

    2024年02月06日
    浏览(17)
  • 基于eNSP的IPv4加IPv6的企业/校园网络规划设计(综合实验/大作业)

    基于eNSP的IPv4加IPv6的企业/校园网络规划设计(综合实验/大作业)

    有什么问题可以在评论区说明自己遇到的情况,博主看到会第一时间回复,希望其他人也可以回复别人的问题 。 可根据以下所提供的设计与实现步骤过程一步一步自行实现(每一条命令都是关键的命令);但是如果有需要的也可以根据以下地址进行下载完整的topo图和完整的

    2024年02月01日
    浏览(13)
  • 基于eNSP的IPv6校园网络规划与设计_综合实验

    基于eNSP的IPv6校园网络规划与设计_综合实验

    有什么问题可以在评论区说明自己遇到的情况,博主看到会第一时间回复,希望其他人也可以回复别人的问题 。 可根据以下所提供的设计与实现步骤过程一步一步自行实现(每一条命令都是关键的命令);但是如果有需要的也可以根据以下地址进行下载完整的topo图和完整的

    2024年02月03日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包