NodeJS + Aliyun 实现 DDNS

栏目: ASP.NET · 发布时间: 7年前

内容简介:NodeJS + Aliyun 实现 DDNS

DDNS,即动态DNS,简单来说就是服务器的 IP 地址经常变动,这个时候需要一个主动上报的服务来更新 DNS 的解析记录,保证域名指向正确的 IP 地址。

比如在自己家中的树莓派上部署了某些服务,且路由器有公网 IP,由于每次重新拨号,公网 IP 都会变,所以想要根据域名去访问树莓派,必须做 DDNS。

DDNS 可以选择 花生壳,但是花生壳提供的 DDNS 服务无法自定义域名,配置起来也较为麻烦,所以这里用 NodeJS 来实现一个 DDNS 服务。

源码地址(https://github.com/luoye-fe/aliyun-ddns)

原理

  • 定期获取本机公网 IP

  • 比对当前 DNS 解析记录

  • 如果不一致,调用阿里云的 API 更新 DNS 记录

相关资料

实现

获取公网 IP

访问 http://ifconfig.me/ip 获取本机外网 IP,注意需伪造 UA,不然403

阿里云 API 接口鉴权

比较复杂,也比较坑爹,具体实现可以看放出的 git 源码

  • 把所有请求参数按顺序序列化

  • 把所有请求参数拼接成 encodeURIComponent(key)=encodeURIComponent(value)&encodeURIComponent(key)=encodeURIComponent(value) 的形式得到 signStr

  • 拼接字符串, [请求方式]&encodeURIComponent('/')&[signStr] ,如 GET&%2F&[signStr]

  • HMAC SHA1 加密,加密的 key 为 [AccessKeySecret]& ,注意最后的 &

获取当前解析记录

DescribeSubDomainRecords

具体看文档


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

人人时代

人人时代

[美]克莱•舍基(Clay Shirky) / 胡泳、沈满琳 / 中国人民大学出版社 / 2012-8 / 49.90元

[内容简介] •一而再,再而三出现的公众事件,绝不仅是来自草根的随兴狂欢,而是在昭示着一种变革未来的力量之崛起!基于爱、正义、共同的喜好和经历,人和人可以超越传统社会的种种限制,灵活而有效地采用即时通信、移动电话、网络日志和维基百科等新的社会性工具联结起来,一起分享、合作乃至展开集体行动。人人时代已经到来。 •微软、诺基亚、宝洁、BBC、乐高、美国海军最推崇的咨询顾问,“互联网革命最伟......一起来看看 《人人时代》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具