java 利用阿里dns解析功能,实现ddns服务。
由于业务需要,需要在家里部署环境,但是苦于阿里云服务较贵,且电脑性能一台无法满足业务开发。我纯粹屌丝一名。哈哈。这里就使用家里的电脑作为开发服务器了。
因此就有个问题,IP会经常变动,我的域名在阿里云上面,如果IP变动,因此需要经常登录到云解析上面去更改解析IP,这样很浪费时间。其实,阿里云提供了一套dns修改方案,根据阿里云提供的sdk就可以进行修改云解析的信息。当检测本地ip变化时,就自动更变解析IP。
我这里使用的电信网络,其他的人可以自行咨询当前服务商是否可以提供动态ip。前段时间,电信服务商给我提供的是内网ip,打10000号给客服,给取消了内网。现在使用的是公网ip。
1、使用要求。
(1)、独立公网ip。
(2)、可以端口映射的路由器一台。(就是可以把内网端口映射成外网端口)。这里
(3)、电脑一台。这里就以centos 7作为样例。
2、代码。由于在网络上面找了很长时间。都没找到符合要求的动态ddns样例。所以自己写了一个,然后生成了jar包。感兴趣的。可以自己拷贝代码生成jar包。代码里面是采用的阿里的sdk。
码云地址:
https://gitee.com/gitchong/flyfish.ddns
备注:不想生成jar包的,自行在这里下载。
百度云盘地址:链接: https://pan.baidu.com/s/1641SUftq_GXcVYZjj2N-sA 密码: mjsu(旧)
链接: https://pan.baidu.com/s/1nY7YSj_HcCYkr0G-dSq5WQ 密码: x788 (新)
备注:新jar包仅需要提供key及域名即可。
使用代码或者直接下载jar包的,最终都是需要将jar包里面的内容替换成自己的域名的信息。
3、将jar包用rar文件打开。
4、修改jar包的属性信息
(1)、这里的AccessKeyId和AccessKeySecret,分别是指的阿里云提供的key。新版仅需提供AccessKeyId、AccessKeySecret域名即可。
点击进入后。自行创建key
(2)、以上所有步骤完成后。就是jar包修改完了。没什么东西,无非是改改参数。
(3)、在centos 上面安装JDK,至于你是多少版本的,建议用1.8以上的。我这里是1.8开发的。
5、写入定时计划
crontab -e
*/1 * * * * /usr/local/jdk/bin/java -jar /data/soft/ddns/com.flyfish.ddns-0.0.1-SNAPSHOT.jar
这里是1分钟执行一次检查。由于linux的crontab限制,这里使用Java调用必须是全路径,请大家注意下。后面的是存放jar
包的地址。
备注:crontab -e 以前没有定时器的话,这次就是新增了。然后大家可以用crontab -l进行查看列表。
当然大家有什么问题,也可以给我留言。