自己实现动态域名解析(服务端)
发布于 20 小时前 作者 yyqian 136 次浏览 来自 分享

最近感觉免费的花生壳服务不是很稳定,于是想自己实现一个,研究了下发现阿里云有提供域名管理的 API:

https://help.aliyun.com/document_detail/dns/api-reference/summary.html

利用这些 API,就能轻松实现花生壳相同的功能(当然,仅适用于阿里云托管的域名)

原理上很简单:

  1. 客户端访问服务端,传递参数:待解析的域名
  2. 服务端获取域名参数,并解析得到客户端 IP 地址
  3. 利用阿里云的 API,提交域名和 IP 地址,更新解析记录

实现上比较麻烦的是 API 参数的签名和编码,不过这个搞明白之后就能解锁阿里云 API 所有的功能了。

示例代码(原生的 Node.js 实现):

https://github.com/yyqian/aliyun-ddns

我的代码里提供了两种更新域名解析的方式:

  1. 跟花生壳相同,解析为访问者的公网 IP
  2. 访问者传递额外的 IP 参数,解析为该 IP 参数的值

注意:示例代码的域名更新 API 没有任何安全防护,仅适用于学习交流。

回到顶部