添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

前言

Cloudflare 作为国际知名 CDN 大厂,对于在国际互联网自由冲浪的小伙伴应该不陌生,其免费 CDN 服务是加速还是减速在曾一度是热门话题。即使不使用 CDN 服务,其 DNS 服务也是一个非常好的选择,抛开其它的不谈,仅不需要实名认证这一点来说,就比国内的厂商不知道高到哪里去了。博主的域名都是通过 Cloudflare 进行托管解析的,所以 DDNS 也需要使用到 Cloudflare。

安装 Cloudflare DDNS 组件

默认情况下 OpenWrt 中并没有 Cloudflare DDNS 功能,需要在编译时选择相应的组件,其位置在 Network IP Addresses and Names

不懂编译也没关系,可以通过 OpenWrt 的 Web 管理页面安装相应的软件包。

此外还可以通过 SSH 连接到路由器,使用软件包管理器安装命令进行安装:

opkg update && opkg install ddns-scripts_cloudflare.com-v4

配置 Cloudflare DDNS

Cloudflare 接管域名解析的操作相信看到这篇文章的小伙伴们都应该有所了解,所以这里就不赘述了。

  • 首先进入域名的 DNS 设置页面,添加一个 A 记录,IP 地址随意,需要注意的是要关闭 CDN 选项,也就是点一下最后面的云朵图标使其变暗。

TIPS: 如果是 IPv6 则是 AAAA 记录。不过根据 IPv6 网络设置的不同所需要使用的 DDNS 方案是不同的,是否在路由器中设置还要根据实际情况来决定。除非是没有公网 IPv4 地址,一般都不建议使用 IPv6 。
TIPS: API Key 可以控制整个账号,为了提升安全性可以选择创建一个 API Token ,权限为 Zone (区域)- DNS - Edit (编辑)即可。感兴趣的小伙伴可以自行探索,这里点到为止。(Lean 大佬的源码博主提交了相关功能的 PR ,2020 年 10 月 13 日后编译的固件才能支持 Cloudflare API Token )
  • 来到 OpenWrt 的 Web 管理页面,找到 动态 DNS ,点击 IPv4 后面的 修改 按钮,或者也可以新 添加 一个。

  • DDNS 服务提供商选择 cloudflare.com-v4 ,然后填入前面设置的域名和获取到的 API Key 以及 Cloudflare 用户名(如果使用的是 API Token ,则用户名是 Bearer )。这里需要注意的是二级域名要使用 @ 来分隔( 写脚本的人不知道为什么傻逼的用了这个分隔符 )。其它设置可以自由发挥,不过一般没什么需要改的。

  • 最后 保存&应用 ,等待几秒后刷新 Cloudflare 的 DNS 管理页面,应该就可以看到 IP 变更了。
TIPS: OpenWrt DDNS 管理页面中的 IP 显示会有延迟,因为要等到下一次检测时才会刷新,这个时间如果没有修改一般是 10 分钟。

更多 OpenWrt 相关文章 点这里

本博客已开设 Telegram 频道 ,欢迎小伙伴们订阅关注。

ENJOY 0

我明白了,那个@是脚本需要区分区域名(就是CF界面的那个大的域名,如b.com),直接用三级的域名(a.b.com)会报错,无法读取到,填成二级才能更新成功,更新的是二级。如果要更新三级,就得填[email protected]

直接在域名(不是上面的查询主机名)处填写a.b.com就报错: 120708 WARN : Could not detect 'zone id' for domain.tld: 'a.b.com'
改成[email protected]则更新成功。
至于API Token为什么用户名是Bearer?这个我暂且蒙在古里。

报错Cloudflare communication require cURL with SSL support. Please install - TERMINATE
删掉/usr/lib/ddns/update_cloudflare_com_v4.sh里[ -z "$CURL_SSL" ] 这一行就行了

二级域名要使用@来分隔!!!
原来这个插件是这么用的!!!以前用这个自带的DDNS插件一直无法解析阿里和dnspod....原来我是我没加@.....
(比如要解析p3terx.com,就要填:@p3terx.com)
然后我还另外去分别装了阿里和腾讯的DDNS插件。。。。
留个言提醒下大家

其实能开CDN,但这个DDNS脚本的逻辑相对简陋,它是通过nslookup来比对目标域名的地址和本机地址的,你挂了CDN,那么每次比对结果都是不吻合,也就是说每次比对它都会强制推一次你的当前IP到cloudflare,不过对结果没啥影响,只是稍微多吃一点路由器的资源。

謝謝P3TERX大佬的分享, 我的Openwrt已成功更新到CF 的DDNS.
因為是二級路由, 所以也提一下在動態DNS>高級設置>IP 地址来源 [IPv4]>選取[URL]
才會更新外網IP. 給我等小白免參考.

如果是使用代理的话最好不要使用“URL”作为来源。
比如说我的路由器 ip是222.222.222.222 ,代理 ip 是 88.88.88.88
如果勾选了 “URL” ,路由器会检查 checkip.dyndns.com,但这个时候返回的是代理ip,不是想要的222.222.222.222

就是我N1做旁路由,一个局域网里的其他设备,都可以设N1里的OPENWRT为网关和DNS,都正常。唯独N1没办法,只能把网关和DNS设为主路由,因为N1 ping 不通 docker 里的OPENWRT,反过来也一样。

N1折腾完,正好又折腾到DDNS,然后GOOGLE一搜,又到博主这里报道,哈哈哈,很同步的说。顺便请教个问题,N1 ARMBIAN,DOCKER 跑OPENWRT,然后就有个坑了,现在还没填,先请教下博主。