动态域名, 也就是大家常说的DDNS, 这个Dynamic DNS的技术是什么? 就是把那些一直在变化的IP地址, 自动地映射到一个固定的域名上面去。它用在哪里? 主要是用来解决一个问题, 什么问题的?

在家庭宽带、移动网络, 这种拥有动态IP环境下, 没法通过一个固定的地址来远程访问设备的一个问题。当你把这个功能配置完成了之后, 会发生什么情况? 情况是这样子的, 无论你是经历怎样频繁的轮转的IP变化, 你只要通过同一个那个域名, 你就可以一直访问到你的目标服务器上去。

整个过程不需要你来手动地对那个地址进行修改操作。

DDNS核心工作原理

数据流的动态域名服务分为三个环节。

1. 客户端检测: 部署在目标设备上的DDNS客户端, 会以固定的周期来进行轮询, 这个周期通常是一到五分钟, 用来获取当前的公网IP地址。

2. 主动更新: 一旦检测到IP变动, 客户端就立即调用DNS服务商的API接口, 然后提交“域名”指向“新IP”的更新请求。

3. 解析生效这个过程的情况是, 服务商先把那个新的IP地址写进权威解析记录里面, 然后全世界的DNS系统会按照TTL的值一步一步地把旧的记录更新成新的记录, 等外部用户再一次去访问这个域名名字的时候, 他们得到的结果就会是对应的那个新地址。

在全过程的运作里, 域名的部分是一直都不发生改变的, 只是它的背后指向的IP地址是在动态地被调整的, 而对于使用的一方来说, 是不需要进行任何操作的。

配置操作步骤

步骤1:创建DDNS域名与账户

你去那些提供DDNS功能的服务商的平台上面, 比如说 gname.xin这样的平台, 去注册一个子域名或者是自定义的域名, 在完成对账号的认证操作以后, 获取API密钥或者访问令牌, 这个凭据后面的时候给客户端调用的。

步骤2:部署DDNS客户端

按照设备的种类来进行匹配, 从而选择相应的处理计划。

在路由那一边, 你可以用到openwrt里头的ddns-scripts插件, 或者是去用那些生产厂家自己搞出来的固件里面本来就已经有的那种叫做ddns的模块。

在服务器这块儿, 你可以在Linux系统或者是Mac电脑上面, 去运行那种叫作Shell脚本的程序, 又或者是去跑类似ddns-go这样的开源工具, 这个东西它还支持通过一个叫做Docker的方式来一键进行部署操作, 就这么简单。

动态域名怎么设置?免费DDNS解析配置原理与操作步骤(图1)

在Windows这个系统上面, 用户需要部署一个专门给这边用的客户端程序, 或者去创建一个会在特定时间自动运行的计划任务脚本。

步骤3:填写关键参数

阜新市自然资源事务服务中心

参数项 填写说明
服务商API地址 对应DNS服务商的更新接口URL
主机名/域名 步骤1中创建的DDNS域名
认证凭据 API密钥或账户密码
更新间隔 建议2~5分钟
IP获取方式 指定网卡或"自动检测公网出口"

步骤4:验证与持续监控

在配置完成之后, 你需要到设备的外网环境中去执行 nslookup你的域名 或者执行 dig+short 你的域名, 以此来确认解析出来的结果是不是跟当前的公网IP一样。大家建议每次DNS的IP地址发生变化的之后, 都要复查一次,以确保客户端不会处于那种静默失效的状态。

典型应用场景

远程去访问放在家里的网络存储服务器, 以及安防摄像头, 这种做法是把它当作内网穿透方案里面负责前置域名那一层的配置手段。

企业动态IP服务器上面的HTTPS业务情况。

实现对于物联网终端设备进行远程方面的运维操作, 以及完成对固件程序的升级处理工作。

在个人建立网站, 并且将博客部署到那些使用住宅宽带网络的场景之中。

关键注意事项

请务必确认设备的出口地址是公网IP, 不要是运营商的CGNAT, 假如不是的话, DDNS更新就会失去实际的意义。

防火墙和安全组必须把目标服务的端口放行, 域名解析正确并不代表端口可达。

大家一定要挑那种支持通过HTTPS这样加密的方式来更新的服务商, 这样才能避免凭证直接明文传出去。

如果当前的网络环境里面是存在了IPv6这种情况的话, 那么就是非常有建议性的要去选用那种服务, 这种服务是需要同时去支持IPv4和IPv6这两个东西的双栈的DDNS服务, 这样的话就完全能够去覆盖到未来那个网络的演进过程了。