Charles94jp / NameSilo-DDNS

动态域名解析程序: A python Dynamic DNS service for NameSilo, with logger, email notification, docker support, IPv6 support.
https://hub.docker.com/r/charles94jp/ddns/tags
MIT License
271 stars 24 forks source link

只比较启动docker时解析到的dns ip值和当前ip是不足够的 #19

Open XueqiangDong opened 1 year ago

XueqiangDong commented 1 year ago

当手动修改dns记录后,除非重启容器,否则程序只判断当前ip和内存中的dns解析ip是否相同,是无法保证10分钟的循环每次都能可以正确更新dns 记录的。 正确的逻辑应该是每隔10分钟,解析当前ip的同时,也解析远程的dns记录,并和当前公网ip比较,不相同就更新;而不是只判断当前ip是否变动 要知道,一般服务器都是常年运行的,而如果指使用容器启动时解析到的dns记录,随着时间推移,这个ip很可能早就过期了(原因很多,比如自己手动修改记录、申请ssl时添加txt记录不小心修改了dns记录、做其它测试等都会导致dns记录被更改),而程序依旧使用老掉牙的启动时解析到的ip来比较,不知道这样设计初衷是啥,难道服务器会在乎省下来这一点点的可以忽略不计的计算机资源吗?

Charles94jp commented 1 year ago
  1. 关于域名的使用。当购买了一个域名a.com时,就可以创建无数个子域名ddns.a.com test.a.com ipv6.web.a.com,每个域名可用作单独的用途。当手动去namesilo管理台修改了ddns域名的记录时,可以解释为已经不想让它指向ddns主机,那可以关闭ddns服务。也可以解释为这是误操作,弥补这次失误的措施是重启ddns服务。
  2. 关于计算机资源问题。主要是namesilo服务器在海外,测试时发现http请求接口的延迟和稳定性都差,所以设计时能少请求就少请求。