实现阿里云域名的DDNS

实现阿里云域名的DDNS

目前现状与痛点

我们在使用ddns的时候会不会遇到这样的问题:路由器只支持指定的域名服务提供商或者是指定的域名,比如我的华为路由器就只支持花生壳:
实现阿里云域名的DDNS_第1张图片

我想看到这篇文章的小伙伴们应该都把域名注册到中国最大的域名注册服务商阿里云上,那么我们要怎么实现阿里云的DDNS呢?我们接着往下看

解决方案

当然我身为一个程序员,如果路由器不支持,我们就应该写一串代码让他支持。阿里云已经提供了相关的API让我们实现动态域名解析(DDNS),API的地址为:https://next.api.aliyun.com/api/Alidns/2015-01-09/UpdateDomainRecord:
实现阿里云域名的DDNS_第2张图片

我们可以在文档当中看到可以支持如java、typescript、go、php等一系列的语言的SDK,因为go语言有以下特点:

  • 直接生成对应操作系统的执行文件,如windows直接生成 .exe文件,不需要再去安装运行环境(如JDK等)就可以直接执行
  • 对系统占用低,甚至在你的树莓派上都能直接运行
  • 执行的效率比java、php等语言要高很多

虽然我是个java程序员,但是综合以上优点,我决定还是使用go语言来开发这个小程序

代码仓库

当然这个小程序我已经用go语言开发好了,且代码已经上传到github,代码仓库地址:https://github.com/xiaohh-me/greateme_ddns,同时我也编译好了三个操作系统的可执行文件,如图:
实现阿里云域名的DDNS_第3张图片

可以直接点击下载可执行文件:

  • Linux(x86-64):https://github.com/xiaohh-me/greateme_ddns/releases/download/v1.0.0/linux_ddns_x86-64-v1.0.0.tar.gz
  • MacOS(arm64):https://github.com/xiaohh-me/greateme_ddns/releases/download/v1.0.0/mac_ddns_arm64-v1.0.0.tar.gz
  • Windows(x86-64):https://github.com/xiaohh-me/greateme_ddns/releases/download/v1.0.0/windows_ddns_x86-64-v1.0.0.zip

其他系统或者是芯片架构需要自己搭建go语言环境自行编译获得可执行文件,编译代码的具体步骤在项目的README.md当中存在:
实现阿里云域名的DDNS_第4张图片

申请阿里云的AccessKey

来到阿里云首页并登陆你的阿里云账号,然后来到你的控制台,将鼠标放在头像上会出现一个菜单,然后点击 AccessKey管理
实现阿里云域名的DDNS_第5张图片

出现这个提示直接点击 继续使用AccessKey,当然你要为AccessKey设置权限的话就需要点击开始使用子用户AccessKey,这个比较麻烦所以在这里直接略过
实现阿里云域名的DDNS_第6张图片

点击创建AccessKey:
实现阿里云域名的DDNS_第7张图片

这里是敏感操作需要验证一下你的身份,任意选择一种即可:
实现阿里云域名的DDNS_第8张图片

验证成功后就生成了AccessKey和AccessKeySecret,我们需要将它记住:
实现阿里云域名的DDNS_第9张图片

确定需要DDNS的域名

我们直接搜索域名控制台:
实现阿里云域名的DDNS_第10张图片

然后点击域名列表可以查看到自己的所有二级域名:
实现阿里云域名的DDNS_第11张图片

本片文章就使用 yueyang.citygreateme.com 两个二级域名来做DDNS,确定两个三级域名:home.yueyang.cityhome.greateme.com 来做这个DDNS

修改配置文件

本片文章就以Windows操作系统为例,其他操作系统操作也大同小异,下载好可执行文件解压之后可以查看目录:
实现阿里云域名的DDNS_第12张图片

在conf文件夹下有一个 config.ini 的配置文件:
实现阿里云域名的DDNS_第13张图片

我们需要修改这个配置文件:
实现阿里云域名的DDNS_第14张图片

开始同步

接下来我们只需要执行 greateme_ddns.exe 这个可执行文件即可,可以查看执行后的控制台输出:
实现阿里云域名的DDNS_第15张图片

我们可以看到当前我的公网IP地址为 110.52.225.170 我们查询一下是不是这个:
实现阿里云域名的DDNS_第16张图片

通过在百度上面查询我的公网IP地址,发现的确是这个IP地址,我们再来查看阿里云的域名解析:

  • home.yueyang.city解析确定了没问题:
    实现阿里云域名的DDNS_第17张图片

  • home.greateme.com解析确定了没问题:
    实现阿里云域名的DDNS_第18张图片

接下来每十分钟就会同步一次域名解析

本篇文章到这里就结束了,代码已经开源放在了github上,如果觉得代码有啥可以优化的地方,欢迎PR

你可能感兴趣的:(阿里云,智能路由器,云计算)