抛弃花生壳!直接使用DNSPod配置动态DNS

如你所料,如果你想在动态IP的网络环境下搭建服务器,那么你需要一个动态DNS服务,来使用一个固定的域名,解析到实时更新的IP。

公司随便一个搞网络基础建设或者运维的小哥都能报出一个如驴贯耳的名字:花生壳。TP-Link路由器中甚至直接集成了花生壳的动态DNS服务,自动将IP上报到花生壳提供的超短TTL(40秒)DNS服务器。我自然也是使用这个服务来保证家中的老旧笔记本充当的服务器能7×24在全球互联网中占有一个席位。

可是这几天,由于通过家中路由器的流量激增,使得小小TP-Link不堪重负,内置的花生壳DDNS进程僵死导致无法上报IP。不上报就不上报嘛,IP又不是更新的那么快。可恶的花生壳居然在上报失败的时候显示他的新硬件广告:花生棒!泥煤啊,这玩意怎么看怎么像ChengRen电视Bang啊!网页怎么看怎么像美国XX胶囊啊!

寻找替代方案的时候,意料之外,情理之中地发现了DNSPod的API,通过接入API,可以在服务器使用脚本动态上报当前IP到DNSPod,在后者使用A记录解析即可,再也不用再CNAME到花生壳了。那么动手之前,我只有一个疑问,TTL怎么办?DNSPod的免费服务TTL最小只支持600秒,也就是说网络上的其他DNS服务器要600秒才来刷新,运气不好的话,家里IP变更将造成10分钟的服务中断。好吧,先试试再说。

官网推荐的一段脚本,Python写的。首先很愚蠢的花了很久才发现有只要有python环境,.py文件可以直接运行,甚至没有后缀名也没有关系。果断很干净地移到/usr/local/bin/。脚本本身是间歇循环运行的,考虑加入开机自动启动,方法在这

惊喜的是,使用这段代码调用API写入的DNS A记录,TTL居然是10秒,10!秒!。

这下好,IP是自动上报了,机器关不掉了,这段循环运行的脚本阻塞了关机或重启的过程,具体原因就不深究了,直觉直接改由系统来负责定时,把脚本改成一次运行。虽然不会Python,注释一句while神马的问题还是不大。

sudo crontab -e

* * * * * /usr/local/bin/pypod >> /var/log/pypod.log

搞定,重启都免了。

希望明天不要再中断服务了。

 


评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据