雨云DDNS动态域名解析实战:ddclient自动更新IP与域名绑定

ddclient 自动检测 IP 变化并调用 DNS API 更新域名解析,动态 IP 也能用域名访问
发布于
3

有固定公网 IP 的雨云云服务器不用操心域名解析——配一次就完了。但家庭宽带、企业分支、临时搭建的开发机都是动态 IP,运营商说变就变。这时候需要一个客户端把自己 IP 的变化同步到 DNS,让域名始终指向最新 IP。ddclient 就是在雨云机器上跑这样一个角色。

一、什么场景需要 DDNS

  • 家里有台树莓派跑了服务,需要外网通过域名访问;
  • 企业分支办公室没有固定 IP,但需要 VPN 或内部系统通过域名找到它;
  • 远程办公/开发时,自己电脑换了网络需要别人通过同一域名找到。

核心矛盾:域名解析 A 记录是静态的,但 IP 是动态的。DDNS 就是一个脚本或守护进程,每隔几分钟检查当前出口 IP,变了就调用 DNS 提供商的 API 更新 A 记录。

二、雨云云服务器的角色

这里分两种情况:

  • 雨云作为 DDNS 客户端运行平台:在固定 IP 的雨云云服务器上跑 ddclient,帮自己管理的那些动态 IP 域名自动更新。因为有固定 IP 和可靠在线时间,比在动态 IP 机器上自己跑更稳。
  • 雨云作为中转:动态 IP 的机器向雨云固定 IP 的服务器报告自己 IP 变化,再由雨云服务器统一调 DNS API 更新。

本文以第一种情况为主——直接把 ddclient 跑在雨云云服务器上,管理若干动态域名。

三、安装 ddclient

apt install ddclient

安装过程中会进入交互式设置向导,也可以跳过,直接写配置文件。推荐跳过用配置文件管理,更清楚。

四、配置文件

/etc/ddclient.conf

daemon=300
syslog=yes
pid=/var/run/ddclient.pid
ssl=yes

# 阿里云 DNS
protocol=alidns
use=web
web=checkip.dyndns.com
login=你的AccessKeyID
password=你的AccessKeySecret
mydomain.example.com

daemon=300 意思是每 5 分钟检查一次 IP 变化。protocol 里的 alidns 对应阿里云 DNS,ddclient 还支持 dnspod(腾讯云)、cloudflare、route53 等几十家,按自己的域名所在平台选。

五、支持的主流 DNS 平台与协议

DNS 平台 protocol 值 备注
阿里云 DNS alidns 需 AccessKey
腾讯云 DNSPod dnspod 需 API Token
Cloudflare cloudflare 需 Global API Key
华为云 DNS huawei 需 AK/SK

密钥不要写死在 ddclient.conf 里(文件权限 600 才安全),或者用 /etc/ddclient/auth/ 单独存密钥文件。

六、测试与启动

# 前台测试(不加 daemon 模式,看有没有报错)
ddclient -foreground -verbose
# 确认无误后启动服务
systemctl enable ddclient
systemctl start ddclient
# 查看日志
journalctl -u ddclient -f

验证方法:在 DNS 控制台手动把 A 记录改成一个错的 IP,等 5 分钟刷新,看它有没有自动修正回去。

七、雨云部署建议

雨云云服务器新购用优惠码 admin01 走专属入口 https://www.jiyueip.com/link/5617 能拿五折。最低配的机器跑 ddclient 都绰绰有余,一条记录几 KB 内存就够。如果要管理几十上百条动态域名,还可以参照本站雨云 Shell 自动化那篇写个脚本把更新结果监控起来。

八、几个常见翻车点

  • API 密钥过期或被回收,更新静默失败,域名解析停留在旧 IP,人进不来——加个监控;
  • ddclient 默认按照 IP 变化才更新,第一次跑如果 DNS 已有正确记录不会更新——测试时先把 A 记录改成一个错的,再前台跑验证;
  • 检测 IP 用 use=web 依赖外部网站返回,被墙或被限频就会挂,备用方案是用 use=if(直接从网卡读 IP)但要求机器本身在动态 IP 环境里;
  • TLS 证书如果在动态 IP 机器上用 acme.sh 签发,IP 变一次就要重新验证域名所有权,DDNS 配合 DNS 验证模式最稳。

常见问题

关于在雨云服务器上配合动态域名解析的常见疑问,下面一并解答。

常见问题(FAQ)

固定 IP 的云服务器需要 DDNS 吗?
不需要。DDNS 是为动态 IP 设计的。但可以用雨云固定 IP 的云服务器作为 DDNS 客户端运行平台,帮其他动态 IP 设备管理域名解析更新。
ddclient 支持哪些 DNS 平台?
支持阿里云 DNS(alidns)、腾讯云 DNSPod(dnspod)、Cloudflare、华为云 DNS、Route53 等几十家。各有对应的 protocol 参数,配置文件里指定即可。
更新延迟大概多长?
取决于 daemon 间隔(本文设 5 分钟),加上 DNS 全球生效的 TTL。TTL 设 600 秒的话,最长 5+10=15 分钟生效。紧急切换建议提前把 TTL 降到 60 秒。
ddclient 挂了怎么发现?
加个监控脚本(参照本站雨云自动化运维篇),定时 ping 域名拿到的 IP 和期望 IP 对比,不一致就告警。ddclient 的 syslog 也要定期留一份。

本文由作者原创/授权发布于极跃圈(jiyueip.com)未经许可,禁止转载。题图来自Unsplash,基于CC0协议。

声明:极跃圈(JIYUEIP.com)内网友所发表的所有内容及言论仅代表其本人,并不反映任何极跃圈(JIYUEIP.com)之意见及观点。

0 讨论
热门最新
总结
暂无总结
0 / 600

静态IP配DDNS,可以让域名一直指向你的固定地址,方便远程访问和对外服务。这篇讲DDNS怎么和静态IP配合,以及常见用法。