跳到正文

DDNS 管理

DDNS 只负责把域名解析更新到当前公网地址。它不会打开端口、配置隧道、签发证书或让业务服务经过网关。

什么时候需要 DDNS

  • 公网 IPv4 或 IPv6 会变化,且网关由外部直接访问。
  • 子域模式需要让认证 Host、业务 Host 或泛解析指向同一入口。
  • 使用 Edge CDN 回源,但源站地址会变化。

如果使用 Cloudflare Tunnel,一般由 Tunnel 的 Public Hostname 管理 DNS;不要再为同一个域名同时建立相互竞争的 DDNS 记录。

配置一条记录

动态域名 中选择提供商并填写凭据、域名、记录类型和更新范围。重点检查:

项目要点
域名填要更新的记录名,而不是完整 URL、路径或端口
更新范围按实际可用网络选择 IPv4、IPv6 或双栈
地址来源使用公网探测、指定网卡、静态 IP 或解析另一个域名;Docker 环境须确认看到的是宿主机地址
出站网卡多网卡设备选择能够访问提供商 API 的接口
泛解析子域网关通常需要 *.example.com,认证 Host 也要能解析

保存后先运行页面的测试或手动更新,再用 dignslookup 或 DNS 控制台确认记录值。解析正确只说明 DNS 已更新;仍需从外网验证端口、证书和网关路由。

当前提供商目录包括阿里云 DNS、Baidu Cloud DNS、Cloudflare、DNSHE、DNSPod、DuckDNS、Dynu、dynv6、腾讯云 EdgeOne CNAME、腾讯云 EdgeOne、阿里云 ESA、GoDaddy、华为云 DNS、No-IP、Porkbun 和腾讯云 DNSPod。页面会按提供商显示所需字段;不要把另一家服务商的 Zone ID、Token 或根域字段套用过来。

DNSHE

选择 DNSHE 时填写 API 管理中生成的 API Key 和配套的 API Secret,再区分两个域名字段:

字段说明
DNSHE 托管域名DNSHE 账号中已注册并处于可用状态的完整托管域,例如 example.com
域名实际更新的完整记录名,必须位于上述托管域内,例如 nas.example.com
TTL可选,默认 600

DNSHE 支持 A 与 AAAA,以及根域、普通子域和通配符记录。同步时,已有且地址发生变化的记录会更新,不存在的记录会创建;地址未变化时不会重复写入。若日志提示找不到托管域、托管域状态不可用或记录缺少内部 ID,先在 DNSHE 控制台核对托管域状态和记录归属,再重试更新。

腾讯云 DNSPod

使用 腾讯云 DNSPod 时,fn-knock 会先按根域、子域、记录类型和线路查找目标记录。记录不存在时会自动创建 A 或 AAAA 记录;记录存在且地址不同则更新,地址相同不会重复写入。配置中的线路与 TTL 会同时用于创建和更新。

若日志仍停在记录查询阶段,不要先手工创建占位记录。应核对根域、子域拆分、记录线路和 Token 权限;真正的查询错误会保留 DNSPod 返回的信息,而“没有记录”会进入自动创建流程。

主域与更多域

主域配置 是默认更新目标,状态卡显示当前 IPv4、IPv6、最后检查和最后成功更新时间。更多域 可新增彼此独立的目标,每条记录都能选择自己的提供商、凭据、地址来源、更新范围和启用状态。

更多域不会继承主域的域名或提供商配置,但页面可识别同一提供商在其他模块或目标中保存的凭据,并只填充当前仍为空的字段。填充后仍应核对 Zone、根域和最小权限。

可对单个更多域执行立即更新、停用、启用、编辑或删除。停用只暂停该目标;删除会同时移除它的运行状态。清空主域配置不会删除更多域,但主域在重新配置前无法参与自动更新。

域名与泛解析组合

支持双域的提供商可在同一域名字段填写通配符及对应基础域,例如:

text
*.r.example.com, r.example.com

两项必须是一组通配符与基础域,基础域需与提供商 Zone / 根域一致或位于其下。页面接受半角逗号、全角逗号或空格,并在失焦后格式化。EdgeOne CNAME 等单地址或单域提供商不接受这种组合;以页面的能力提示为准。

从网卡选择地址

选择 从网卡直接获取 时,必须明确指定一张网卡。默认只使用可全局路由的公网候选,排除 RFC1918 私网 IPv4、IPv6 ULA、仍在地址检测、冲突检测失败或已弃用的地址;临时 / 隐私 IPv6 默认也会排除。候选为空时,应更换网卡或改用公网探测、静态 IP 或域名解析。

需要给内网 DNS、VPN 或分流解析发布私网地址时,可开启 允许内网地址。该开关只把 RFC1918 IPv4 和 IPv6 ULA 加入当前目标的网卡候选,不会让回环、链路本地、CGNAT 或其他保留地址进入列表,也不会修改路由器、防火墙或公网 DNS 的可达性。

地址选择不再依赖网卡返回列表中的序号。手工设置 优先地址 后,只要该地址仍符合筛选规则,系统就会优先使用它;没有手工优先地址或该地址已不可用时,才继续沿用当前仍可用的地址,最后从其余候选中稳定选择。这样既保证手工指定高于系统推荐,也避免未指定时因候选顺序变化导致记录跳动。旧版本保存的地址序号会在页面中转换为稳定选择规则,保存后生效;旧配置没有选择规则或旧序号已经失效时,后台也会按自动稳定规则选择候选,不会仅因缺少序号而中断无人值守更新。

自动同步中,如果当前已发布地址仍可用,而之前的优先 IPv6 刚刚重新出现,系统会等待它连续 3 轮都被检测到后才切回,避免地址短暂恢复造成 DNS 往返跳动。手工立即更新不使用这段稳定等待;需要立即切回时可在确认链路稳定后手动执行。

切换到另一张网卡时,页面会清空原网卡的优先地址、CIDR 和 IPv6 接口标识等选择规则,避免旧规则误套到新网卡。切换后应重新检查预览并按需配置规则。

开启内网地址后,明确选择的 优先地址 仍优先,其次保留当前仍可用的地址;需要重新自动选择时,公网候选排在内网候选之前。关闭开关会立即把私网地址排除出预览和后续更新;如果当前 DNS 记录仍是私网地址,需手动更新或等待下一轮同步改写。

优先地址 在自动和自定义模式中都可设置。需要按网段或 IPv6 接口标识进一步限定时,切换到 自定义匹配规则

设置作用
优先地址候选中存在该地址时优先于当前地址和系统排序使用;地址失效后仍可选择其他匹配项
包含 CIDR只从指定 IPv4 或 IPv6 网段中选择
排除 CIDR排除不应写入 DNS 的网段
IPv6 接口标识(低 64 位)忽略会变化的前缀,跟随同一接口标识选择新的 IPv6 地址
允许临时/隐私 IPv6 地址默认关闭,避免隐私地址轮换造成频繁更新

页面会实时预览最终选中的地址。规则同时匹配多个候选时,预览会显示候选数量并按稳定性选出一个,不会按网卡列表中的偶然顺序选择;没有匹配项时不能依赖该配置更新。IPv6 前缀会变化、但设备接口标识稳定时,可选择当前优先地址并保留自动提取的低 64 位接口标识;不应使用临时隐私地址时保持默认关闭。

公网地址探测设置

DDNS 的公网地址探测可使用内置 HTTP(默认)或系统 curl。内置 HTTP 在选择出站网卡时会绑定对应的本地地址,适合多网卡设备明确控制探测流量从哪里出去;系统 curl 则依赖宿主机已有的命令与网络环境。

探测设置还可选择公共 DNS:不使用、阿里云、腾讯云、Cloudflare 或 Google,默认使用阿里云。这里的公共 DNS 只用于解析公网地址探测服务,不会改变 DDNS 提供商、待更新的记录,也不会替你修改业务域名的 DNS。

IPv4 和 IPv6 可分别维护多个探测地址。地址可以是返回纯 IP 的 HTTP(S) URL,也可以是可解析的域名。修改前先点击 测试地址,逐条确认状态码、响应预览和解析出的 IP;恢复出厂地址 只覆盖弹窗中的草稿,仍需保存才会生效。

自动同步与日志

自动同步间隔可设为 21440 分钟,默认 10 分钟。保存新间隔后从下一轮同步开始使用。手工执行 立即刷新 或单个更多域的 立即更新 不需要等待周期。

日志用于区分四类问题:

日志阶段常见问题
地址获取探测站不可达、网卡无候选、静态 IP 或来源域名无效
提供商认证Token、Secret、权限或系统时间错误
Zone / 记录查找根域、Zone ID、站点名或完整域名不匹配
创建 / 更新API 限流、记录类型冲突、TTL 或代理状态不受支持

清空日志不会清空配置和运行状态。排障时保留最后一次失败及其前后记录,分享前遮盖 Token、Secret、Zone ID 和公网地址。

子域场景的最小规划

example.com 为例,可让 auth.example.com 和业务子域都到达同一网关入口。常见做法是维护认证 Host 和泛解析记录;具体是否使用 A、AAAA 或 CNAME 取决于 DNS 提供商和网络拓扑。

IPv6 不是 IPv4 的自动替代。若只配置 IPv6,客户端、路由器和 CDN 都必须具备可用 IPv6 链路;双栈环境中应分别测试两种记录。

排查

  1. 查看 DDNS 日志中的认证、查找和更新结果。
  2. 确认网卡选择器预览的地址符合目标 DNS 的使用范围;公网记录不应误选 Docker 或内网地址,私网记录则需确认 允许内网地址 已开启。
  3. 立即更新后确认状态卡的“最后成功更新”发生变化;只变化“最后检查”表示本轮没有成功写入。
  4. 确认 DNS 记录名称、Zone / 根域和访问 Host 完全一致。
  5. 使用权威 DNS 或提供商控制台确认记录值,避免只看本机缓存。
  6. 从外网测试 DNS、TLS、网关端口和实际应用,逐层定位。

QQ群:1081609274