fangyugg 发表于 2013-12-5 20:56:18

dsm4.2 解决adsl电信外网ip频繁更换后群晖ddns更新不稳定的问题

本帖最后由 fangyugg 于 2013-12-5 21:01 编辑

这也是一个老问题了。最后还是自己编脚本解决了。
分两步,第一步是编写自动ddns的脚本。no-ip,花生壳等ddns更新脚本网上都有。我就贴上一个我自己的。
wanip='curl ifconfig.me' #这个不是必须的,没有好像也能运行,ddns服务器会自动获取你访问的外网ip
wait
wget -q 'http://username:passwd@ddns.oray.com/ph/update?hostname=xxxx.gicp.net&myip=$wanip'#其中,&myip=$wanip也不是必须的。一般会自动认识当时的访问ip。这个是花生壳的。
wget -q 'http://username:passwd@dynupdate.no-ip.com/nic/update?hostname=xxxx.no-ip.org&myip=$wanip'
hostname后面换上你申请的动态域名就可以了。这个是no-ip的。
脚本保存好之后,记得chmod +x 脚本名字
然后就是更改crontab了。
由于群晖的计划任务机制不是直接调用系统的,而是利用系统的crontab启动一次计划任务,然后再由群晖自己的计划任务机制来运行循环脚本。群晖自己的计划任务最小时间单位是小时,对我们这儿平均8个小时就要更换一次ip的adsl来说太慢了。因此我们就必须绕过你在管理网页上的计划任务,直接在系统层面来修改。
修改方法也不是象传统linux一样用crontab。而是直接访问crond的设置页。就是/etc/crontab文件。
#minute hour    mday    month   wday    who   command
56      7       *       *       3,6   root    /usr/syno/bin/synopkg chkupgrade
20      0       *       *       *       root    /usr/syno/bin/timebkp recycle_al
*/10    *       *       *       *       root    /root/ddns-check.sh

这就是我的设置。你照抄最后一行就ok了。意思是每10分钟运行ddns检查脚本一次。嗯,1分钟就不必了吧。实话告诉你,花生壳是你一在ddns服务器上更改,立刻就能解析出来,但是no-ip,呵呵,延迟很厉害的,没有半个小时解析更新不过来的。如果你不断骚扰ddns服务器,它会给你一个abuse的反馈。所以10分钟足够了。
一般需要ddns也就是你的移动端和cloud station客户端要用到。差个10来分钟也不算啥啊。实在不行,你让系统每查到一次ip变了就发个邮件给你。你直接用ip也ok的了。
修改完了重启就ok了。嗯,弊端是会在脚本边上出现一个update文件,里面记录了最后一次运行脚本时服务器给的反馈。这个没办法,wget就这样了。看不顺眼你就加一行rm update就行了。









longsi 发表于 2013-12-6 08:17:14

谢谢分享,辛苦了

会跳舞的驴 发表于 2013-12-6 08:30:12

我这一直正常。

georgefan101 发表于 2013-12-6 08:50:21

“群晖自己的计划任务最小时间单位是小时,对我们这儿平均8个小时就要更换一次ip的adsl来说太慢了。”。。这话真心不理解,看上去不慢呀。。。

fangyugg 发表于 2013-12-6 12:51:42

8个小时换一次,更换以后,你需要一个小时启动ip检测,然后ddns程序更新ip,然后ddns服务器反馈到所有dns上。大约有1/4的机会你是无法直接连上的。
另外,群晖自己的ddns更新程序总是会在ip变了之后无法正常注册。除非重启nas。我基本上见到5次更新ip里面有3次是无法连接服务器更新。而且,它无法更新后就再也连不上了。不会自己一次一次的去试的。
所以没辙,只好自己编脚本实现了。

illustrate 发表于 2013-12-6 17:27:15

謝謝分享
页: [1]
查看完整版本: dsm4.2 解决adsl电信外网ip频繁更换后群晖ddns更新不稳定的问题