(实操)Padavan固件手动配置ipv6公网的CloudFlare DDNS 作者: 毕世平 时间: 2024-12-26 分类: 默认分类 前言:个人喜欢`Padavan`老毛子固件的稳定流畅,可是又不想装`hiboy`那集成太多自己根本用不到的插件的`Padavan固件`。于是便看上了`hanwckf/rt-n56u`这个项目,使用了由这个项目编译出的固件,但是固件默认实在太过简洁,白瞎了运营商给的`ipv6`公网地址。于是多番尝试下,根据[上篇文章](https://shiping.date/ipv6-cloudflare-ddnsv6-use-api_token.html "上篇文章")摸索了下在`Padavan`固件下给`ipv6公网`地址做`cloudflare ddns`域名解析更改。 本文主要介绍在`Padavan`固件下(需要集成curl工具),给`br0`接口获取到的`ipv6公网地址`做`CloudFlare ddns`,注意仅仅是`ddns`,不牵扯防火墙或者流量(端口)访问。 ## 1.关于Padavan的curl命令使用 不知道你有没有碰到这样的问题,当在Padavan的ssh命令行下使用`curl https://xxx.com`的时候,它会报错,提示找不到证书,无论任何https链接,就像下图这样: ![Snipaste_2024-12-26_15-03-49.png](https://shiping.date/usr/uploads/2024/12/3615477498.png) 我也被这个问题困扰了好久,直到昨天,我去`hanwckf/rt-n56u`项目issues区搜了下`curl相关`,作者给出的一条说明,感觉真是相见恨晚。 > [hanwckf/rt-n56u项目issue](https://github.com/hanwckf/rt-n56u/issues/188 "hanwckf/rt-n56u项目issue") 那么在作者给出解决办法之后,我们使用时候就方便了,只需要加个`-k`,如下图: ![Snipaste_2024-12-26_15-14-22.png](https://shiping.date/usr/uploads/2024/12/1982466164.png) 一切便又正常了,没有找不到证书的报错了。 ## 2.配置Cloudflare ddns脚本 参考上篇文章:[给linux设备ipv6公网地址做cloudflare ddns](https://shiping.date/ipv6-cloudflare-ddnsv6-use-api_token.html "给linux设备ipv6公网地址做cloudflare ddns") 假定已经准备好了如下材料: # cloudflare邮箱地址如下: X-Auth-Email信息:"abc@gmail.com" # 域名信息如下: MY_DOMAIN="ddnsv6.example.com" # 域名,区域ID信息如下: ZONE_ID="aaaaaaaaaa" # 自定义添加的api token令牌信息如下: API_TOKEN="bbbbbbbbbb" 在开始下一步之前,需要先在Cloudflare DNS后台手动添加一条DNS域名解析记录,`AAAA`类型,假定是`ddnsv6.example.com`对应`240c::1234`,那么现在获取添加的这条记录在cloudflare后台对应的`id`值,执行下面命令即可,参数酌实替换: curl -kw "\n" --request GET \ --url https://api.cloudflare.com/client/v4/zones/这里填ZONE_ID信息/dns_records \ --header 'Content-Type: application/json' \ --header 'X-Auth-Email: 这里填你的cloudflare注册邮箱地址' \ --header "Authorization: Bearer 这里填自己添加的API_TOKEN" 然后从返回的记录值中找之前加的那条`AAAA`记录对应的`id`值,就在那条记录首部,记为`RECORD_ID="ccccccccccc"`,方便下一步使用。需要注意的是,这个`id`值只要你不在`Cloudflare-DNS`后台手动删除这条解析记录,它就不会变化,无论你更改记录中的`名称 ddnsv6`还是解析值`240c::1234`。 将上一步得到的`id`记录值等数据写进更新脚本中,下面给出一个范例,其中`ipv6公网`地址使用从本机获取的方式,参考`hiboy`大佬的Padavan固件中Cloudflare插件,这里致谢!!! # 创建脚本专用文件夹,并切换至此 mkdir -p /etc/storage/ddns && cd /etc/storage/ddns # 脚本文件取名update_ip.sh vi update_ip.sh ##################################(范例开始) #!/bin/sh MY_DOMAIN="ddnsv6.example.com" ZONE_ID="aaaaaaaaaa" RECORD_ID="ccccccccccc" AUTH_EMAIL="abc@gmail.com" API_TOKEN="bbbbbbbbbb" ipv6_address=$(ifconfig br0 | awk '/Global/{print $3}' | awk -F/ '{print $1}') # ipv6_address=$(curl ip.sb) curl -k --request PUT \ --url https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records/$RECORD_ID \ --header 'Content-Type: application/json' \ --header "X-Auth-Email: $AUTH_EMAIL" \ --header "Authorization: Bearer $API_TOKEN" \ --data '{ "content": "'"$ipv6_address"'", "name": "'"$MY_DOMAIN"'", "proxied": false, "type": "AAAA", "comment": "Domain verification record" }' ##################################(范例结束) 将上述脚本文件中的重要参数替换为自己的即可,之后保存文件,然后可执行 `sh update_ip.sh` 命令,看返回值有没有`success`字样,再去`cloudflare dns`后台查看,路由器本机获取到的ipv6公网地址有没有正确更新到这里。 ## 3.配置定时任务 路由器重新`PPPoE`拨号情况下,`ipv6公网地址`一般就会发生变化,可以用定时任务解决这一问题。而Padavan固件配置定时任务的方法有两种,`ssh下添加`或者`网页端添加`: - 如果你熟悉crontab命令,ssh下添加即可 # 开始编辑定时任务,它会调用默认的vi编辑器 crontab -e ##########################(范例开始) */10 * * * * sh /etc/storage/ddns/update_ip.sh >/dev/null 2>&1 ##########################(范例结束) 上面命令意思是,每隔10分钟执行更新命令,也即00,10,20,30,40,50这几个分钟点自动更新,不输出任何日志 # ssh命令行下查看已配置的定时任务(实际上它都在 /etc/storage/cron/crontabs 文件夹下的一个文本里存放) crontab -l - 如果你想网页端操作,那么按下图指示操作即可,侧栏选中`系统管理`-`服务`,然后拉到最下面,点开`调度任务(Crontab)`,在下面配置即可: ![Snipaste_2024-12-26_15-56-51.png](https://shiping.date/usr/uploads/2024/12/4235531295.png) ![Snipaste_2024-12-26_15-57-27.png](https://shiping.date/usr/uploads/2024/12/2684575886.png) 填写完毕,点击底部的**应用设置**即可。 **注意**:无论是选择了上述哪一种添加定时任务的方法,要想保证路由器断电不丢数据,都需要执行`手动保存`或者`路由器后台手动重启`,操作如下图(**二选一即可**)来保存数据: ![Snipaste_2024-12-26_16-02-21.png](https://shiping.date/usr/uploads/2024/12/3018213987.png) ![Snipaste_2024-12-26_16-03-06.png](https://shiping.date/usr/uploads/2024/12/2898673366.png) ## 4.结语 完成上述所有操作,你路由器每次重新拨号完成获得新的ipv6公网地址后,定时任务便会发挥作用,每10分钟上传你本地的ipv6记录值到cloudflare后台,你便可以通过相应的ddns域名获取信息了。 ## 参考链接: - [hiboy大佬发布Padavan固件地址](https://opt.cn2qq.com/ "hiboy大佬发布Padavan固件地址") - [curl没有本地证书,下载https会出错(项目issue)](https://github.com/hanwckf/rt-n56u/issues/188 "curl没有本地证书,下载https会出错(项目issue)") - [给linux设备ipv6公网地址做cloudflare ddns](https://shiping.date/ipv6-cloudflare-ddnsv6-use-api_token.html "给linux设备ipv6公网地址做cloudflare ddns") 标签: none