Node.js | 基于DNSPod的动态域名解析
2020-04-30 本文已影响0人
StAndres
简介
自己在家研究树莓派,在完成了基础的nas和暴露至公网后,面临电信的免费公网IP会经常更换的问题。所以准备自己撸袖子用Node.js做一个基于DNSPod用户api的DDNS应用。
项目地址:https://github.com/andresjay/AndDnsPod
应用场景
个人开发的小型应用,例如自己在家搭建的Webdav服务、个人网站,并能够:
- 在公网访问;
- 不需要频繁手动更换ip地址;
- 不想花太多钱(纯白嫖策略可以参考树莓派 | 使用Node.js实现轮询公网IP并在变化时发送邮件)
使用方法
前置条件:
- 已经注册并购买DNSPod域名
- 服务器/PC/树莓派/...已拥有公网IP
第一步:在账号中心 - 秘钥管理 页创建秘钥
- 打开秘钥管理页并点击【创建秘钥】
创建秘钥1
创建秘钥2 - 重点:这里的Token只会出现一次,如果忘记了就只能删除条目并重新创建,并且在后面的会用到,所以需要自己找地方记好。
第二步:在域名管理页新增一条记录
- 打开域名列表,并点击进入自己的那条域名;
- 点击【添加域名】,填写【主机记录】与【记录值】,其中主机记录要记好,记录类型为A类型,记录值则可以随便填一个:
添加域名
第三步:下载应用并填写配置
- 安装依赖包
npm install request --save
- 拉取应用
$ git clone https://github.com/andresjay/AndDnsPod
- 编辑配置文件
config.js
// *Necessary*
// 1. 输入在第一步创建秘钥中保存的id与token
const tokenId = '123456'
const token = '1a2b3c4d5e6f7g'
// *Necessary*
// 2. 域名 与 在域名列表里新增的主机记录,如按照第二步的截图,则在subDomain填写webdav
const domain = 'hello.world'
const subDomain = 'subdomain'
// 3. 循环:如果希望在后台挂起并保持轮训,则设置≥0的时间,单位:分钟
const intervalTime = 0
module.exports = {tokenId, token, domain, subDomain, intervalTime}
第三步:运行
一次性运行
$ node AndDnsPod.js
或在后台挂起
$ node AndDnsPod.js &