Skip to content

Cloudflare DDNS 配置

这页适合谁

如果你的域名托管在 Cloudflare,而你又希望 fknock 自动把域名解析更新到当前公网 IPv4 / IPv6,这页就是给你的。

它主要适用于:

  • 直连模式
  • 公网 IP 可能变化
  • 想通过固定域名访问 fknock

如果你走的是:

  • FRP
  • Cloudflared

那么反代教程本身通常不需要先做 Cloudflare DDNS。

先理解:fknock 会怎样更新 Cloudflare 记录

fknock 会定期检查本机当前公网 IPv4 / IPv6,然后调用 Cloudflare DNS Records API:

  1. 先按完整域名查询现有 A / AAAA 记录
  2. 找到就更新
  3. 找不到就创建

也就是说,Cloudflare DDNS 的本质不是“神秘黑盒同步”,而是:

用 Cloudflare 官方 DNS API,把你的域名记录持续改成当前公网地址。

fknock 页面里要填的 4 个字段

字段填什么去哪里拿
API Token用于调用 Cloudflare API 的令牌My Profile → API Tokens
Zone ID目标域名所在 Zone 的唯一标识Cloudflare 账号 Overview 页的 API 区域
域名要更新的完整域名你自己决定,例如 home.example.com
Cloudflare 代理仅解析橙色云朵在 fknock 里直接选

第 1 步:创建 API Token

Cloudflare 官方当前推荐的做法是创建 API Token,而不是使用 Global API Key。

最省事的路线是:

  1. 登录 Cloudflare Dashboard
  2. 进入 My Profile → API Tokens
  3. 点击 Create Token
  4. 选择官方模板:
    • Edit zone DNS
  5. 把资源范围限制到你真正要更新的那个 Zone
  6. 创建后立刻复制 token

如果你不用模板,而是自己建自定义 token,那么至少要保证:

  • Zone > DNS > Edit

并把作用范围限制在目标 Zone。

第 2 步:获取 Zone ID

Cloudflare 官方当前文档给出的路径是:

  1. 进入 Account home
  2. 打开对应账号的 Overview
  3. 在页面里的 API 区域找到 Zone ID
  4. 点击复制

请注意:

  • Zone ID 不是域名本身
  • 也不是 Account ID
  • 它是这个域名 Zone 的唯一标识

如果你有多个域名,一定要确认复制的是目标域名所属 Zone 的 ID。

第 3 步:确定 域名 应该怎么填

这里要填的是:

  • 完整域名

例如你要更新的是:

  • home.example.com

那就直接填:

  • home.example.com

而不是只填:

  • home

是否需要你先在 Cloudflare 里手动创建记录,取决于你的习惯。即使记录不存在,fknock 也可以在首次更新时直接创建对应的 A / AAAA 记录。

第 4 步:决定 Cloudflare 代理 怎么选

对 fknock 的 7999 直连入口,通常应选 仅解析

也就是灰云。

原因不是“文档习惯”,而是 Cloudflare 官方当前只默认代理一组固定的 HTTP / HTTPS 端口,例如:

  • 80
  • 443
  • 8080
  • 8443

而 fknock 直连入口常见的是:

  • 7999

它不在 Cloudflare 默认代理端口列表里。

因此,在下面这种典型场景里:

  • 域名直接指向你家的公网 IPv4 / IPv6
  • 访问的是 fknock 的 7999

通常建议:

  • 选择 仅解析

什么时候才考虑橙色云朵

只有在你的外部链路本来就是围绕 Cloudflare 代理设计的情况下,才值得再评估:

  • 访问端口是否受支持
  • 是否应该改用 Cloudflare Tunnel
  • 是否属于 Spectrum 等别的产品能力范围

对 fknock 的直连教程来说,默认不建议把 7999 做成橙色云朵。

第 5 步:回到 fknock 填写并测试

路径:DDNS 管理

推荐顺序:

  1. 选择提供商为 Cloudflare
  2. 填入 API Token
  3. 填入 Zone ID
  4. 填入完整域名
  5. Cloudflare 代理 先选 仅解析
  6. 保存并执行一次测试更新

测试成功后,建议再同时检查:

  1. fknock 的更新日志
  2. Cloudflare DNS 记录页
  3. 真实外网访问结果

双栈用户要特别注意什么

如果设备同时拿到了公网:

  • IPv4
  • IPv6

那么 fknock 会分别尝试更新:

  • A 记录
  • AAAA 记录

所以你在 Cloudflare 里可能会看到两条记录都被维护,这属于正常行为。

如果你的真实需求不是双栈,而是:

  • 只维护 IPv6
  • 或只维护 IPv4

那么可以回到 DDNS 管理 页面,把:

  • 更新范围

改成对应模式。

如果你的设备上有多张网卡,或者你明确希望通过某个 WAN 口去完成检测和更新,也可以在同一页面里额外指定:

  • 出站网卡

常见错误

保存后提示权限不足

优先检查:

  1. token 是否真的用了 Edit zone DNS 模板,或至少具备 Zone > DNS > Edit
  2. token 是否授权到了正确的 Zone
  3. token 复制时是否带了空格或换行

一直提示更新不到记录

优先检查:

  1. 域名 是否填成完整域名
  2. Zone ID 是否对应这个域名所属 Zone
  3. 当前网络是否真的拿到了公网 IPv4 / IPv6
  4. 更新范围 是否和当前网络能力匹配
  5. 多网卡设备上,出站网卡 是否选错

开了橙色云朵后,7999 就不正常了

这正是直连场景里最常见的误区之一。

更稳妥的做法通常是:

  • 保持 仅解析
  • 让域名直接解析到公网地址
  • 再由 fknock 负责登录入口与后续访问控制

反代教程里到底要不要来配这页

一般不用。

如果你当前走的是:

  • FRP
  • Cloudflare Tunnel

请优先看反代教程和隧道教程,不要把 DDNS 当成反代前置条件。

官方参考

相关阅读

QQ群:1081609274