dnspod 动态域名解析教程,DNSPod DDNS 动态解析配置

家庭宽带环境下,动态IP带来的麻烦基本很难避开。路由器重启,或是运营商IP租约到期,公网地址就会更换。在外远程访问家里NAS、监控或者自建服务,昨天记下的IP,今天就无法连通。DNSPod的DDNS就是用来解决这个问题,绑定固定域名,跟随不断变化的IP同步更新,不用手动记录变动的IP地址。

正式配置前,先要确认几项前置条件。需要一个托管在DNSPod的域名,无论是直接在DNSPod注册,还是外部域名修改NS记录迁移过来都可以。准备DNSPod账号,登录控制台。最重要的是获取API Token,DDNS客户端依靠这个凭证向DNSPod验证权限,完成域名解析更新。没有Token,就算客户端检测到IP变动,也无法修改解析记录。

dnspod 动态域名解析教程,DNSPod DDNS 动态解析配置

DNSPod控制台获取API Token的路径:登录账号,点击右上角头像进入我的账号,左侧菜单栏找到安全设置,打开API Token页面,创建密钥,系统会返回Token ID和Token两组内容,两项都要保存,配置客户端时需要全部填写。Token只会在创建页面展示一次,页面关闭之后无法查看,丢失只能重新生成。这里容易混淆,DNSPod的API Token和腾讯云API密钥属于两套独立凭证,在腾讯云控制台找到的密钥,不一定适用于DDNS客户端,务必在DNSPod专属控制台生成。

拿到Token之后,进入DNSPod域名解析页面,新建一条A记录。主机记录填写子域名前缀,例如nas、home,如果使用根域名,填写@。记录值临时随便填写一个IP,后续客户端会自动替换为真实公网IP。TTL设置600秒比较合适,数值过大,IP变更之后解析迟迟不生效;数值过小,解析请求过于频繁,没有必要。这条A记录就是客户端更新的目标,缺少这条记录,客户端会报record_id获取失败。

接下来挑选客户端,不同设备环境适配不同方案,不存在万能选择。

路由器原生支持DDNS,服务商列表包含DNSPod,是最简单的方案。登录路由器后台,找到动态DNS菜单,服务商选择DNSPod,填入Token ID、Token,主机名填写完整域名,保存后点击测试联机。部分路由器将Token ID和Token分成两个输入框,部分需要按照ID,Token格式合并填写,以页面提示为准。路由器持续监测WAN口IP变化,IP变动自动调用DNSPod接口更新解析,不用额外安装软件。

路由器不支持DNSPod,或是打算把DDNS部署在NAS、树莓派、常开电脑上,就需要单独安装客户端。ddns-go是目前常用开源工具,使用Go语言编写,单文件运行,Windows、Linux、macOS都有对应安装包,也支持Docker部署。自带Web管理界面,默认监听9876端口,浏览器访问http://设备IP:9876即可配置。服务商选择DNSPod,填入Token ID、Token,选中DNSPod上创建好的域名,主机记录填写A记录设置的前缀。默认每五分钟检测一次IP状态,也可以在界面修改检测间隔。日志页面保存最近五十条更新记录,查看IP变更是否更新成功。

Docker部署ddns-go参考命令,挂载配置目录到宿主机,使用--net=host获取宿主机真实网络信息,浏览器访问配置页面。AnnAngela/dnspod-ddns镜像采用环境变量配置,设置DNSPOD_ID、DNSPOD_TOKEN、DNSPOD_DOMAIN、DNSPOD_SUB_DOMAIN,默认五分钟执行一次更新。

有代码基础的用户,也可以自行编写脚本。DNSPod开放API,借助curl或者Python requests库调用接口。核心逻辑三步:查询域名解析记录拿到record_id,获取本机公网IP,对比IP不一致就发起更新请求。网上现成脚本资源很多,ArDNSPod是纯Shell实现,scriptxiaozi的DDNS项目支持多语言、多家DNS服务商,DNSPod只是其中之一。自己写脚本可控性强,可以自定义各类逻辑;缺点是需要自行处理异常重试、日志记录,对比现成客户端会耗费更多精力。

配置完成后验证是否正常工作。等待一段时间,刷新DNSPod控制台解析记录,看A记录值是否更新为当前公网IP。记录没有更新,优先查看客户端日志报错。另一种验证方式,外网环境ping域名,返回IP和路由器WAN口公网IP一致,代表解析生效。

几个高频踩坑点提前说明。Token填写错误是最多的故障,客户端持续认证失败,核对Token ID、Token,检查复制时附带多余空格。第二种情况,A记录不存在,客户端找不到更新目标,提示record_id获取失败,先去DNSPod解析后台确认A记录创建完成。端口问题,DNSPod DDNS接口使用443或80端口,设备网络出站限制这类端口,客户端无法连接DNSPod服务器,需要检查防火墙规则。最后一点,确认宽带是否拥有公网IP。运营商做NAT的情况下,WAN口获取的是100.64或10开头内网地址,DDNS更新的也是内网IP,外网依旧无法访问,这种场景DDNS无效,需要内网穿透方案。

免责声明:本文提供的方法与建议仅供技术参考,实际部署效果受机房环境、运营商线路、系统配置等多重因素影响。请在专业人员指导下操作,因自行操作导致的业务损失本站不承担责任。