飞牛 DDNS:公网 IP 变了,域名还能跟上
动态域名解析的原理和配置,以及没有公网 IPv4 时该怎么办。
家庭宽带的公网 IP 通常是动态的:重启光猫、运营商换地址,IP 就变了。如果你用域名访问 NAS,IP 一变,域名就指错地方了。
DDNS(动态域名解析)就是解决这个问题的:定时检测 IP,变了就自动更新域名的解析记录。
原理
DDNS 客户端跑在 NAS 上,做两件事:
- 定期获取当前公网 IP;
- 如果和 DNS 记录不一致,调用 DNS 服务商的 API 更新记录。
整个过程自动完成,你只需要在域名服务商那里准备好 API 凭据。
常见实现
- 路由器自带 DDNS:很多路由支持阿里云、腾讯云等;
- NAS 上跑脚本:用 API 定时更新;
- Docker 工具:如 ddns-go 这类镜像,图形化配置。
飞牛本身的应用中心/社区里也有相关方案,具体以你当前版本为准。
配置要点
以阿里云为例,大致需要:
- 一个域名,托管在阿里云解析;
- AccessKey(建议用子账号,只给 DNS 权限);
- 要更新的记录(比如
nas.example.com); - 更新间隔(一般 5~10 分钟)。
脚本或工具就是调用「修改解析记录」的接口,把值换成当前 IP。
没有公网 IPv4 怎么办
这是现在很多家庭的现实:宽带是 CGNAT,没有公网 IPv4。
这时候 DDNS 有两种变通:
- IPv6 DDNS:如果宽带有 IPv6,给 AAAA 记录做动态更新;
- 内网穿透:用 FN Connect、Tailscale、Cloudflare Tunnel 等,根本不依赖公网 IP。
所以 DDNS 不是万能的,先确认自己到底有没有公网地址。
常见的坑
API 权限过大:用主账号 AccessKey 有风险,建议子账号最小权限。
更新太频繁:容易被服务商限流,5~10 分钟一次足够。
只更新 A 记录:如果走 IPv6,要更新 AAAA。
光猫重新拨号后 IPv6 前缀变了:AAAA 记录也要跟着更新。
用 DDNS 暴露了管理端口:安全风险高,尽量配合防火墙或 VPN。
小结
DDNS 解决的是「IP 变了怎么办」,但它只对有公网地址的场景有效。
如果家里没有公网 IP,别在 DDNS 上花时间,直接上内网穿透方案更实际。
留言