Node.js | 基于DNSPod的动态域名解析

简介

自己在家研究树莓派,在完成了基础的nas和暴露至公网后,面临电信的免费公网IP会经常更换的问题。所以准备自己撸袖子用Node.js做一个基于DNSPod用户api的DDNS应用。

项目地址:https://github.com/andresjay/AndDnsPod

应用场景

个人开发的小型应用,例如自己在家搭建的Webdav服务、个人网站,并能够:

  1. 在公网访问;
  2. 不需要频繁手动更换ip地址;
  3. 不想花太多钱(纯白嫖策略可以参考树莓派 | 使用Node.js实现轮询公网IP并在变化时发送邮件)

使用方法

前置条件:

  1. 已经注册并购买DNSPod域名
  2. 服务器/PC/树莓派/...已拥有公网IP

第一步:在账号中心 - 秘钥管理 页创建秘钥

  1. 打开秘钥管理页并点击【创建秘钥】
    创建秘钥1

    创建秘钥2
  2. 重点:这里的Token只会出现一次,如果忘记了就只能删除条目并重新创建,并且在后面的会用到,所以需要自己找地方记好

第二步:在域名管理页新增一条记录

  1. 打开域名列表,并点击进入自己的那条域名;
  2. 点击【添加域名】,填写【主机记录】与【记录值】,其中主机记录要记好,记录类型为A类型,记录值则可以随便填一个:
    添加域名

第三步:下载应用并填写配置

  • 安装依赖包
npm install request --save
  1. 拉取应用
$ git clone https://github.com/andresjay/AndDnsPod
  1. 编辑配置文件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 &

你可能感兴趣的:(Node.js | 基于DNSPod的动态域名解析)