QNAP TS-219P 设置 3322 动态域名
背景
虽然 QNAP TS-219P 本身自带有 3322 的 DDNS 功能,不过在使用的过程中,发现经常出现更新 IP 出错的情况。查看它的使用机制,是先获取外网 IP,将外网 IP 与之前保存的外网 IP 进行比较,如果两者不同则更新 DDNS,否则,不做任何操作。
而在使用过程中,偶尔会出现,检测外网 IP 不同,并申请更新 DDNS 的情况。在更新失败的情况,QNAP 还是会保存新的外网 IP,这就导致到,3322 的 DDNS 在下次更换 IP 之前不会被更新。由于平时写程序,很多代码都放在 QNAP 的服务器上,不能访问的话,着实很郁闷!!!所以需要找一种不用 QNAP 自带方式,但是可以更新 IP 的办法。
解决办法
1) 挂载启动盘符到 /tmp/config
mount -t ext2 /dev/mtdblock5 /tmp/config
2) 创建启动盘上的 autorun.sh 文件
touch /tmp/config/autorun.sh
3) 将文件的内容修改为如下:
#!/bin/sh
/share/HDA_DATA/.qpkg/autorun.sh
4) 保存文件,并设置可执行权限
chmod +x /tmp/config/autorun.sh
5) 在 /share/HDA_DATA/.qpkg/ 路径下创建 autorun.sh 文件
/share/HDA_DATA/.qpkg/autorun.sh
6) 设置可执行属性
chmod +x /share/HDA_DATA/.qpkg/autorun.sh
7) 修改 /share/HDA_DATA/.qpkg/autorun.sh 文件,添加我们需要的计划任务
#!/bin/sh
tmpfile=/tmp/crontab.tmp
crontab -l | grep -vi “wget” > $tmpfile
echo “*/10 * * * * /usr/bin/wget -c -O /dev/null http://username:password@www.3322.org/dyndns/update?hostname=username.3322.org” >> $tmpfile
crontab $tmpfile
rm $tmpfile
/etc/init.d/crond.sh restart
8) 重新启动设备,执行如下命令查看设置是否生效
crontab -l
参考资料
http://wiki.qnap.com/wiki/Autorun.sh
http://wiki.qnap.com/wiki/Add_items_to_crontab
Jemuillot
You have your own server finally.