需要提前准备的材料:一个托管在Cloudflare的域名,一台已经安装了docker,有公网ipv6地址的服务器
获取Cloudflare用于修改DNS记录的API token
首先登录托管了域名的cloudflare账号,登陆后在dashboard页面,点击右上角的用户图标,选择profile

在profile页面,点击左边栏中的API tokens

点击创建token

选择使用edit zone dns模板

permissions这里需要dns的修改权限

一般只需要修改Zone Resources这一栏,第三个选项选择你需要用作DDNS的域名,选好以后点继续即可

确认信息无误后点击创建token

创建成功后就可以复制使用了,需要注意token创建成功后,因为安全原因只会在这个页面显示一次。

安装DDNS服务
这里使用docker进行ddns的服务创建,使用的项目地址:https://github.com/timothymiller/cloudflare-ddns
使用这个项目进行DDNS服务的部署非常简单,将命令保存到docker-compose.yml后,直接docker compose up -d即可,以下是供参考的命令,这里我只开启了ipv6的绑定,需要修改其他环境变量可以查询项目里的详细说明。
version: '3.9'
services:
cloudflare-ddns:
image: timothyjmiller/cloudflare-ddns:latest
container_name: cloudflare-ddns
security_opt:
- no-new-privileges:true
network_mode: 'host'
environment:
- CLOUDFLARE_API_TOKEN=你的 cloudflare token
- IP6_DOMAINS=你想要绑定的域名
- IP4_PROVIDER=none
- IP6_PROVIDER=local.iface:填写你的网卡的名称如eth0
- PROXIED=false
restart: unless-stopped
最后查看容器的log输出,看域名是否绑定成功。
docker logs cloudflare-ddns

最后可以nslookup一下绑定的域名,看看是不是真的有查询到dns结果的返回。