准备

OpenWRT

首先需要准备一个带 ddns 的固件,当然后装也是可以的,编译时将下面依赖 luci-app-ddns, ddns-scripts, ddns-scripts_cloudflare.com-v4 加入。

Cloudflare

创建 API 令牌

进入 cf 面板,依次点击我的个人资料 -> API 令牌 -> 创建令牌,选择编辑区域 DNS,使用模板,按照图示填写后保存,随后复制 API 令牌。

创建 API 令牌

添加一条 DNS 记录

添加路由器公网 IP,ipv4 选 A,我这里只有 ipv6 地址就选 AAA 记录了,并把代理关掉(旁边的 ☁️)。

配置

进入路由器面板,点动态 DNS,添加一条记录,基础设置中如图填入信息,DDNS 服务提供商 选择 cloudflare.com-v4查询主机名 域名 都填刚刚添加的 DNS 域名解析记录,用户名Bearer密码 填复制的 API 令牌
基础设置
点击高级设置
高级设置

找到 IP 地址来源,这个选项是获取路由器 IP 的方式,根据需要选择,我这边选择的 脚本,然后 ssh 进入路由器添加个脚本 get_ip.sh,别放到临时路径了,重启就没了

1
2
3
4
#!/bin/sh
ip a | grep xxx | awk 'print $n'
# 自行发挥吧

之后保存,启动,查看域名访问是否可以成功,如果失败,检查一下 DDNS 插件显示的 IP 地址是否是本机地址,如果不一样,可以手动去 cloudflare 更新一下,或者等十分钟让脚本自动更新。如果依然无法访问,确认防火墙是否拦截掉了流量。