qnap 免docker,用计划任务实现阿里云ddns方法
一直想弄个nas来同步自己的3台电脑工作文件+照片备份。今日趁着某电商打折入了一台QNAP低端设备,想用外网访问和Qsync同步,但由于myqnapcloud.cn的速度不理想,而且也不逼格,所以自己申请了域名,现在要解决的就是DDNS的问题了,条件:你家里的网是公网,有自己的域名,我申请的是aliyun的域名,最便宜的那种进入重点:1.没有域名的去申请域名,申请完了,建一条A...
重要的事情说3遍,免Docker,免Docker,免Docker
一直想弄个nas来同步自己的3台电脑工作文件+照片备份。
今日趁着某电商打折入了一台QNAP低端设备,想用外网访问和Qsync同步,但由于myqnapcloud.cn的速度不理想,而且也不够逼格,所以自己申请了域名,现在要解决的就是DDNS的问题了,
条件:你家里的网是公网,有自己的域名,我申请的是aliyun的域名,最便宜的那种
教程开始
1.没有域名的去申请域名,申请完了,建一条A记录
主机记录那里我用的NAS,到时候访问就是nas.域名,如果你想用www.域名。访问你的nas那你主机记录就填写www,IP那里随便添,反正一会是要自动换的,你可以填写0.0.0.0。
2.建立完A记录后,生成你的AccessKey,(这个AccesKey就是用来外部修改你域名解析设置的接口)
点继续使用,并生AccessKeyId和AccessKeySecret (相当于用户名和密码),然后自己记录一下,稍后会用到。
3.下载aliyun.sh文件
https://github.com/cuteribs/ribsnetwork/tree/master/ddns
转自@可爱的排骨
将文件上传至你的QNAP目录,我上传到了 web/aliyundds下
4.创建计划任务并定时运行aliyun.sh
因为我并没有找到QNAP的计划任务,能定时运行,这点不如群晖,公司的群晖是有这个功能的。
所以我们只能通过SSH的方式手动用命令行创建计划任务去运行这个aliyun.sh
首先打开QNAP的SSH功能(默认没开启),开启方法 控制台-网络&文件服务-Telnet/SSH-勾选允许SSH链接。
然后使用找个打开SSH的软件,我这里用的PUTTY,登陆你的NAS
登陆后运行命令如下(这步的目的是为了验证命令的有效性,如果有效,再建立计划任务,如果无效建立计划任务也是错的)
{你的aliyun.sh的详细目录} {AccessID} {AccessKeySecret} {域名} {主机记录}
注意,这里的/share/CACHEDEV1_DATA/Web/aliyunddns/aliyun.sh 这个目录位置在Filestation里面如下图
(FileStation的目录是 DataVol1/Web/aliyunddns,但SSH里面不能这么写路径,得写/share/CACHEDEV1_DATA/Web/aliyunddns/)
详细命令如下图,运行后结果如下,
上面命令报了错,错误是权限不够,
没关系我们运行提升权限命令
[/] # chmod 775 /share/CACHEDEV1_DATA/Web/aliyunddns/aliyun.sh
然后再把上面权限报错的命令再运行一下
我这里是因为我运行过,所以提示我IP无变化,你们第一次运行的话提示跟我不一样。
这里的脚本使用http://members.3322.org/dyndns/getip 获取的IP,这里再次感谢@可爱的排骨 的脚本
运行成功后你的域名里面之前随便填写的IP,比如0.0.0.0 会变成你当前公网的动态IP
4.1
如果上面都成功后,下一步就是把这条命令放在QNAP的计划任务里面了。
这里参考了
https://blog.csdn.net/weixin_33966365/article/details/94316205
我们只需要将QNAP 的 crontab 放在 /etc/config/crontab
用VI编辑器打开crontab
命令如下vi /etc/config/crontab
例如要每日5:00執行 backup.sh 的話,加上這行
00 5 * * * {这里就是你运行成功的SSH命令} 例如00 5 * * * /share/CACHEDEV1_DATA/Web/aliyunddns/aliyun.sh LTAI4FskNjfKwYRiPPMK*** cFGRRDVHMtsAG2rE7aXZp**** jia***.com ***
存檔
套用設定
crontab /etc/config/crontab
重啟 crontab
/etc/init.d/crond.sh restart
然后运行 crontab -l 查看一下计划任务是否创建好。
OK,到这里大功告成。各位如果按照此方案成功了,请大家多鼓励,(第一次写博客)。
补充一点:家里的公网IP 80和8080都是封闭的,所以别忘了做端口映射到你的路由器,把80和8081映射成你自己想要的,比如5000和5001,这样访问你的nas就在浏览器输入 域名.com:5000就行了,app同理
2020/03/24 更新
此方法目前有bug,crontab套用后,重启nas后,aliyun.sh会自动被qnap改名为 aliyun.sh.-- 导致计划任务不能运行,
试过给sh文件加权限,加i,重启后均被改回aliyun.sh.--,正在研究怎么给脚本放到QTS系统的 autorun.sh里面
2020/03/25 更新
找到了一个方法,安装一个第三方app,会默认在download里面生成个文件夹
重写了脚本文件,把参数写死了,想在shell脚本里面加个startup文件夹,里面生成个custom.sh
app原帖地址:http://www.nasyun.com/thread-63751-1-1.html
刚开始走了弯路,因为这个app只在开机时运行,所以想在里面写个死循环,然后去花了1个小时把shell语言看了一下
索性把原aliyun.sh那个文件的参数写死成我的了。
然后写死循环 while :
do
code
sleep 600
done.
然后虽然此APP开机启动一次,但由于是循环,所以会一直运行,
重启NAS做测试,偶然发现这个第三方的app生成的custom.sh并不会被系统改为
custom.sh.--,所以shell文件也不用重写了
于是又用crontab做了计划任务,(本博客4.1内容)
测试后终于没有bug,目前用了2周,重启路由器和NAS数次,DDNS一切正常。
更多推荐
所有评论(0)