2018-12-02 自动更新DNS解析
December 02, 2018
电信拨号ip一直会变化,怎么自动更新ip呢。下面就是我的步骤。
步骤列表:
- 获取最新的ip地址
- 将最新的ip地址保存到线上
- 更新dns解析的指向
下面详细介绍下每一步的做法:
- 这一步比较简单,访问http://2018.ip138.com/ic.asp 即可获取到最新的ip地址,当然得用电信拨号内网的机器访问才行。 wget/curl即可,简单方便。当然如果条件允许,也可以用更复杂的语言和方法等等。系统自带的命令是最方便的。
- 第二步稍微复杂一点,得首先有一个地方能保存起来。刚好我有一个腾讯云服务器,之前的文章已经介绍过,安装了adminer和mysql,那么只要有一个web server将api提供出来就可以了,这样我就可以在内网机器上将ip通过api保存进这个服务器的mysql数据库里了。 一切以简单为主,这个云服务器上已经安装了node,8.11的版本,和一个pm2,装一个koa,开放一个记录ip的接口即可。
这也分成好几步:
- 新建一个api.xxxx.xxx的子域名,布置好api接口,从内网机器访问该接口以保存ip;
- 安装koa,mysql等依赖包,将request.query.ip参数及remote_addr保存起来;
- 内网机器配置crontab,每3分钟访问一次该接口,达到定时刷新的目的。
插曲
```
stream {
upstream db {
server xxx.xxx.xx:13306;
}
server {
listen 13306;
proxy_pass db;
}
}
```
因为nginx的配置文件里,我这样写,导致nginx重启时失效了,说13306端口被占用,这里需要注意。 upstream里的本地端口需要改成与listen不一样的本地端口。- 第三步,通过腾讯云提供的解析API更新域名指向
这里主要重点是,要引入crypto和request模块,查看云解析API,计算Signature等等,根据云解析API的返回值判断是否操作成功。