DDNS 管理
DDNS 适合什么场景
如果你的公网 IP 会变,但你又希望始终通过固定域名访问入口,就适合使用 DDNS。
它解决的问题是:
自动把域名解析更新到当前公网 IPv4 / IPv6。
哪些场景更常用 DDNS
子域模式
最常见,也最推荐优先规划。
因为子域模式本质上是:
- 让域名直接指向你自己的公网 IPv4 / IPv6
只是访问组织方式是:
auth.example.comalist.example.comnav.example.com
这类子域。
直连模式
也会用到,但不再建议作为多数新部署的首选。
因为直连模式下,你往往是让域名直接指向自己的公网 IPv4 / IPv6,再由 fknock 负责入口认证和白名单放行。
反代模式
不一定需要。
如果你使用的是:
FRPCloudflared
这类场景通常不是“域名直接指向你家里的公网 IP”,所以反代教程本身一般不把 DDNS 作为前置条件。
页面能做什么
DDNS 管理 页面主要负责:
- 选择提供商
- 保存提供商配置
- 选择更新范围
- 指定出站网卡
- 手动测试更新
- 查看最后一次记录到的 IPv4 / IPv6
- 查看更新日志
DDNS 定时任务默认约每 5 分钟 检查一次公网 IP 变化。
支持哪些提供商
已内置多家提供商,包括:
- Cloudflare
- 阿里云 DNS
- 阿里云 ESA DNS
- 腾讯云 EdgeOne
- 腾讯云 EdgeOne(CNAME 接入)
- DNSPod
- 百度云 DNS
- 华为云 DNS
- 腾讯云 DNS
- GoDaddy
- NO-IP
- Porkbun
- DuckDNS
- dynv6
也就是说,这页现在已经不是“只给 Cloudflare 准备的附属功能”,而是一套通用 DDNS 管理入口。
最近这 3 类提供商特别值得单独留意
腾讯云 EdgeOne
适合:
- 你的权威 DNS 已经托管到 EdgeOne
- 你准备让域名直接在 EdgeOne 里完成解析与加速
这一类场景下,fknock 的 DDNS 会直接维护 EdgeOne 站点内的 DNS 记录。
如果你后面还准备把 auth.example.com、alist.example.com 这些子域继续接到 EdgeOne 的代理能力前面,建议配合下面这篇专题页一起看:
腾讯云 EdgeOne(CNAME 接入)
适合:
- 你的权威 DNS 还在其他服务商
- 你只是把某个业务域名通过
CNAME接到 EdgeOne 做加速
这类场景和普通 DDNS 有个很大的不同:
- 它更新的不一定是“公网 DNS 记录”
- 更常见的是更新 EdgeOne 加速域名背后的源站地址
还要注意一个边界:
腾讯云 EdgeOne(CNAME 接入)一次只能更新一个源站地址
所以这里更推荐直接把:
更新范围
设成:
仅更新 IPv4- 或
仅更新 IPv6
不要继续保留:
IPv4 & IPv6
阿里云 ESA DNS
适合:
- 你的域名已经接入 ESA
- 你希望继续在 ESA 里维护解析记录
- 你可能还想顺手使用 ESA 的代理能力
如果你准备的不是“只更新解析”,而是“让 ESA 真正站在 fknock 前面做加速与回源”,推荐直接看专题教程:
先理解两个新增选项
更新范围
路径里现在可以直接选:
IPv4 & IPv6仅更新 IPv6仅更新 IPv4
它控制的是:
- 本次检测时要不要查 IPv4
- 本次检测时要不要查 IPv6
- 最终要不要更新对应的
A/AAAA记录
最常见的几种用法:
- 你家宽带是双栈,而且域名希望同时支持两种访问:选
IPv4 & IPv6 - 你主要靠公网 IPv6 直连:选
仅更新 IPv6 - 你的提供商或当前链路只想维护 IPv4:选
仅更新 IPv4
如果你把范围切成了 仅更新 IPv6,但机器当前根本没有可用公网 IPv6,那么手动测试会直接报错并终止,这属于正常保护行为。
出站网卡
这也是最近新增的能力。
你现在可以在页面里指定:
- 自动选择
- 或明确选某一张实际存在的网卡
它影响的是两件事:
- 公网 IP 检测时优先走哪张网卡
- 调用 DNS 提供商 API 时优先走哪张网卡
这对下面这些场景尤其有用:
- 机器上同时有多张物理网卡
- 既有 IPv4 WAN,又有 IPv6 WAN
- Docker / 虚拟网卡很多,自动探测容易不符合预期
- 你明确知道应该从哪条出口链路去更新 DDNS
如果你拿不准,先保持:
自动选择
只有当“检测到的公网地址总是不对”时,再回头指定网卡。
推荐的配置顺序
- 先选择提供商
- 先决定更新范围
- 如有需要,再指定出站网卡
- 填完全部字段
- 先执行一次测试更新
- 成功后再保持自动更新开启
这样做的好处是:
- 容易分清是配置问题,还是链路问题
子域模式下最常见的一种 DDNS 做法
如果你的域名是:
example.com
并且你准备让多个子域都直达公网入口,那么最常见的做法通常是维护:
*.example.com
如果你使用的提供商字段名就是:
完整域名
那么也可以直接填写:
*.example.com
用来做这一条泛解析记录。
如果你又恰好只有公网 IPv6,那么推荐直接把:
更新范围
改成:
仅更新 IPv6
这样做的好处是:
- 不会再为不存在的公网 IPv4 白白做检测
auth.example.com、alist.example.com这类子域都能统一落到当前 IPv6- 后续申请
*.example.com证书时,链路也更顺
需要补一句的是:
*.example.com不会覆盖根域example.com
如果你也要让根域参与访问,通常还需要单独维护根域记录。
使用 DDNS 时最需要理解的 4 件事
1. DDNS 只负责解析,不负责链路是否真的通
即使 DDNS 成功,域名仍然可能打不开,因为后面还有:
7999是否可达- 证书是否正确
- 模式是否匹配
- 隧道或映射是否就绪
2. DDNS 可以同时处理 IPv4 和 IPv6
系统会分别检查当前公网 IPv4 和 IPv6,并根据变化决定是否更新对应记录。
3. 手动测试会先做“检测”,再做“更新”
测试更新时,系统通常会按这个顺序工作:
- 读取当前提供商配置
- 根据更新范围决定检测 IPv4、IPv6,还是两者都检测
- 按所选网卡去获取当前公网地址
- 调用对应提供商 API 更新记录
所以当你在日志里看到:
- “未检测到 IPv6”
- “当前配置中的更新范围没有可用地址”
- “权限不足” 或 “记录更新失败”
它们其实分别对应不同阶段的问题。
4. 日志是排错时最有价值的地方
日志里通常会直接记录:
- 是否获取到了公网 IP
- 更新的是 IPv4 还是 IPv6
- 成功还是失败
- 错误原因
子域模式里很容易踩的两个误区
误区一:只切了模式,没有把泛解析真的更新出去
子域模式不是只在后台切一下开关就结束了。
如果:
auth.example.comalist.example.com
这些子域根本没有正确解析到当前公网入口,那么后面的认证、证书、Passkey 都无从谈起。
误区二:明明只有 IPv6,还保留双栈更新
如果你当前只有公网 IPv6,却还保持:
IPv4 & IPv6
那么日志里经常会出现没有必要的 IPv4 探测失败信息,排错时也更容易分神。
手动测试时的排错顺序
如果测试失败,建议这样看:
- 有没有获取到公网 IP
- 更新范围是否和当前网络能力匹配
- 如果机器有多张网卡,出站网卡是否选对
- 提供商配置是否完整
- Token / Key / Secret 是否填对
- 域名是否写成了完整域名
Cloudflare 用户建议先看专题页
如果你使用 Cloudflare,推荐直接配合下面这篇专题页使用:
这页会单独讲清楚:
API Token应该走哪个官方模板Zone ID该从 Dashboard 的哪个位置复制- 完整域名应该怎么填
- 为什么
7999直连入口通常应该选仅解析
