qnap 免docker,用计划任务实现阿里云ddns方法

重要的事情说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一切正常。

 

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值