如何配置DDNS

为什么需要DDNS?

https://domains.google/#:~:text=On%2015%20June%202023%2C%20Google,domains%20have%20migrated%20to%20Squarespace.

https://support.squarespace.com/hc/en-us/articles/17131164996365-About-the-Google-Domains-migration-to-Squarespace?platform=v6&websiteId=66687dd4e2fe9553b05e6a01

很久之前看到的消息:Google将自己的域名服务出售给了Squarespace,新的服务提供商不再支持DDNS服务。起初并没有在意,看了眼账单域名的年费价格没变,好像对我也没啥影响。直到某天,在外办公的时候想访问下家中的NAS存储的文件和照片,结果发现访问不了。快速测试了下域名,发现绑定的IP变了,思考片刻应该是之前设置的DDNS服务随着Google Domain的迁移也停止服务了,赶紧手动更新了一下A记录,果然NAS的访问恢复了。但是手动更新并不是长久之计,所以让我来看看有哪些可以替代的服务。

如何配置DDNS?

什么是DDNS?

动态域名系统(Dynamic Domain Name System,简称DDNS)是一种将动态IP地址映射到固定域名的服务。通常情况下,家庭或小型办公室的互联网连接使用的是动态IP地址,即每次连接到互联网时,IP地址可能会发生变化。DDNS服务可以在IP地址变化时自动更新域名记录,使用户可以通过固定的域名访问设备或服务,而不需要记住不断变化的IP地址。

如何配置DDNS?

  1. 选择一个DDNS服务提供商,例如No-IP、DynDNS或DuckDNS。
  2. 在提供商的网站上注册一个账户,并创建一个新的DDNS主机名。
  3. 在路由器或设备上配置DDNS服务,输入提供商的服务器地址、账户信息和主机名。
  4. 保存配置并测试,确保域名能够正确解析到当前的IP地址。

相关链接

现在怎么办?

家里的路由器使用的是ASUS的GT-AX6000,自带的DDNS是支持NO-IP的,所以首先尝试一下此解决方案。一开始各种设置都很顺利,直到注册域名时才发现仅支持部分根域名,例如:.com/.net/.me等,我的域名并不在支持范围之内,只能转向Cloudflare方案。

那么新的问题又来了:

路由器不支持Cloudflare的DDNS客户端怎么办?

不怕,兵来将挡水来土掩,我们还可以刷路由器固件嘛,openwrt(asus-merlin)支持自定义的,搞起搞起!整个过程也很简单,全程大概10分钟。刷完路由器之后,ssh到路由器上上传Cloudflare DDNS客户端的脚本。重启路由器之后,日志中出现DNS更新成功记录如下:

1
2
3
4
5
Feb 15 23:18:23 ddns: update CUSTOM , wan_unit 0
Feb 15 23:18:23 ddns: Clear ddns cache.
Feb 15 23:18:23 custom_script: Running /jffs/scripts/ddns-start (args: 50.35.92.17)
Feb 15 23:18:23 itsxiaode: IP 50.35.92.17 obtained by router
Feb 15 23:18:23 ddns: Completed custom ddns update

在cloudflare DNS record 检查IP被成功更新,公网访问NAS成功恢复。

附录

How to Setup DDNS on ASUS RT-AC86U Merlin Router