1.背景
最近申请了公网IP,且家用公网IP在路由重启后会进行变动,需要一个域名来进行映射才方便日常使用,且手头上正好有一个域名。
遂考察了几种候选方案:
- 威联通自带DDNS,由于支持的服务商有限,而且自定义模块难用,遂放弃
- 威联通提供的免费域名,域名较长,且对域名服务商对移动宽带不是很友好,可以作为备用
- 使用开源脚本来进行映射,github上也已经有成熟的轮子方便使用
考虑了以上三种方案后,选择直接采用别人造好的轮子,顺便贴一下项目地址DDNS
以下为我在NAS上使用DDNS,并最终在青龙面板上配置定时任务的一个记录。
2.在青龙面板中安装DDNS
其实DDNS的安装十分的简单,官方也提供了4种方式来使用
-
pip 安装(需要 pip 或 easy_install)
-
二进制版(单文件,无需 python)
-
源码运行(无任何依赖, 需 python 环境)
-
Docker(需要安装 Docker)
以上四种方式我均尝试过,也说一下其中的坑。
第二种和第四种都是不需要python环境的,所以也是我最先尝试的。
先说第二种,这个属于是最简单的那种了,本身就是一个可执行文件,直接运行后当前文件夹会出现配置文件模板,然后根据自己不同的域名服务商进行配置即可正常执行DDNS。正常运行再配置定时任务就可以正常使用了,但此时问题出现了,威联通NAS重启后是会重置所有配置文件的,也包括你定时任务的文件,所以每次重启后都需要进行重新配置定时任务,十分不不友好。
然后是第四种,也是一条命令就可以实现DDNS服务,但是威联通的Docker用起来始终有点问题,无法获取到对应的配置文件,所以放弃了。
再是第三种,和第二种一样的原因,也没有使用。
事情到这已经是很难受了,突然想起来青龙其实就是一个定时任务的面板而且可以很好的支持Python,正好可以用来配置DDNS服务。
在青龙面板中安装DDNS也是同样很简单,只需要在依赖管理中下载ddns依赖即可。
3. 在青龙面板中配置DDNS
因为ddns需要读取对应的配置文件才能正常运行,所以需要给一个具体目录存放路径,方案也比较简单。
想必大伙都已经使用Docker映射了文件夹scripts,青龙面板task 命令也一般以这个目录为起始路径,所以现在里面建立一个自己的文件夹,在里面把前面配置好的config.json放入里面,再写一个简单的shell脚本,脚本内容也很简单,第一步进入该文件夹,第二步,执行ddns,代码如下:
cd /ql/scripts/zcyoop
ddns
目录结构如下:
然后现在就可以再青龙面板配置定时任务了,这里我是5分钟执行一次
整个流程到这里就结束了。
ps:该脚本如果ip没法发生变化日志是会只有一个·的。
又学习到了,写的非常好
感谢分享,赞赞赞
打卡升级