有固定公网 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 验证模式最稳。
常见问题
关于在雨云服务器上配合动态域名解析的常见疑问,下面一并解答。






