UNRAID下基于dnspod实现免费DDNS服务
目标环境:unraid
玩nas的都知道,ddns是必不可少的服务,让你能在互联网访问家里服务器的所有服务。
之前用的是一个免费的ddns,但是一个月要手动激活确认一次,觉得很麻烦。其次测试发现ip的同步时效有问题,时间久了就导致服务地址不可用(中间做了proxy,目前还没有最终确认是nginx的问题,还是这个ip失效的问题,待换了此新方案后确认)。
补充:这问题应该是nginx的proxy_pass的dns缓存问题。
简单的搜了下,目前有宝塔,群晖等方案,但考虑到方案的通用性,还是决定直接用原生cron的方案,而实际操作下来,也非常方便。
dnspod 域名设置
- 创建或者导入已有的域名,添加子域名,设置默认的地址,比如127.0.0.1
- 注意ipv4 和ipv6的设置差别。 一个是A类型,一个是AAAA类型。
dnspod 获取token
- 登陆dnspod, 我的账号 - api秘钥 - DSPod Token。
- 根据要求填写,然后生成id和token,自己保存起来。
软件包使用
dnspod目前支持的工具包地址: https://github.com/rehiy/dnspod-shell
1. 编辑ddnspod.sh,分别修改/your_real_path/ardnspod、arToken和arDdnsCheck为真实信息
2. 运行ddnspod.sh,开启循环更新任务;建议将此脚本支持添加到计划任务;
unraid定时运行
crontab -e
在末尾添加:
# Run minute cron jobs at every minutes after the hour:
* * * * * /xxx/dnspod-shell/ddnspod.sh 1> /dev/null
路径改成自己实际的。
刷新域名
如果发现127.0.0.1变成实际的ip了,说明脚本和定时任务生效了。