用Java写的,一个实时检测IP变化并更新DNS状态的工具,适用于在NameSilo购买的域名,如果你的域名是在其他商家购买的,修改为商家的api就行。代码我放github了,地址:
背景
目前运营商给家庭宽带的IP都是动态的,庆幸的是虽然IP地址不固定,但是却是一个公网IP,所以我们可以购买一个域名,使用动态域名解析技术将域名解析到宽带的IP。这样就可以在家搭建各种服务并通过访问固定的域名来访问,而无需租用昂贵的公网服务器。
想实现这个目的,你需要一台一直运行的电脑来运行此程序,时刻检测宽带IP的变化。当然也需要自己解决路由器NAT映射的问题,但这不在本篇讨论。
简介
本程序通过访问 https://202020.ip138.com/ 获取家庭宽带的公网IP地址,通过 https://www.namesilo.com/api/ 来查询和更新DNS状态。
配置
为了运行这个程序,你需要安装Java,推荐jdk11。首次运行之前你需要配置_conf.txt文件,填写你从NameSilo获取的api key,以及你的域名(不带前缀)。
Linux则要做额外配置,首先要确保_conf.txt是Linux格式,否则脚本在拼接字符串时会出错。使用vi打开,然后:set fileformat=unix,最后退出保存。接着设置脚本权限 chmod 755 linux_runDDNS.sh
运行
Windows :直接双击win_runDDNS.bat
Linux :./linux_runDDNS.sh
在开机时启动
Windows :将vbs文件加入策略组
Linux :添加sh到服务,可以重定向输出到文件以检查服务运行情况。
其他DDNS方案推荐
都是用到了curl发送请求,把响应保存到文件中 ,再用脚本处理字符串。单个文件就能解决,不过脚本语言特别是Windows的batch语法不是很友好,一般做运维的可能比较熟悉脚本语言。
Windows :https://www.v2ex.com/t/274392
Linux :https://github.com/pztop/namesilo_ddns
还有一个Windows powershell脚本实现的
https://www.ctrol.cn/post/freesource/domain-host/05-25-cartev-4719.html