前言
最近更换了电信的宽带,顺便申请了一个固定IP,于是想要通过域名直接访问家里的服务器,但是电信分配的IP在光猫重启时会发生变化,于是便想到了借助DDNS(动态域名解析)来解决这个问题。
安装Node.js
因为笔者使用的这个开源库使用js写的,所以需要安装Node.js
下面的安装是针对Ubuntu用户的操作,其他系统用户请自行去官网查找安装
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt-get install -y nodejs
下载&配置aliyun-ddns
目前该工具分为两种模式的版本:
- client-mode,这种模式下只需要在客户端定时执行一个 Node.js 程序,当前地址的公网 IP 是借助访问公共的 API 来获取的
- server-mode,这种模式需要在服务端部署一个 Node.js 程序,并且在客户端定时请求服务端以使得服务端获知当前客户端所在地址的公网 IP
笔者这里使用client-mode,配置如下:
- 下载aliyun-ddns
- 复制 client-mode/config-sample.json 并命名为 client-mode/config.json
- 修改 client-mode/config.json 中的内容, 参数说明见下面
- 参照 client-mode/client.sh 写个 shell script
- 让脚本可运行:
chmod 775 client-mode/client.sh
client-mode/config.json 参数说明:
- AccessKeyId 和 AccessKeySecret 在阿里云的控制台获取, 注意保密
- hostnames 是待更新的多个 DNS (子)域名
crontab 定时执行
- 编辑 crontab:
crontab -e
- 添加记录, 让脚本 5 分钟调用一次:
*/5 * * * * /path/to/client-mode/client.sh
- 重启 cron 服务