smartdns
smartdns copied to clipboard
设定 -speed-check-mode none 就不再更新查询结果了
问题现象
写了这条 设定-speed-check-mode none
domain-rules /domain.com/ -speed-check-mode none
之后domain.com超过rr_ttl_min都发回旧IP
之前以为是上游DNS没更新,逐一排除后发现所有上游DNS都已经更新了。但本地SmartDNS隔了好几个小时都还是发旧IP回来。
运行环境 有设定 option rr_ttl_min '300'
重现步骤
- 上游DNS配置。
config server option name 'alidns' option blacklist_ip '0' option type 'tls' option port '853' option ip '223.5.5.5' option no_check_certificate '0' option enabled '1'
config server option port '853' option name 'alidns' option type 'tls' option blacklist_ip '0' option no_check_certificate '0' option ip '223.6.6.6' option enabled '1'
config server option port '853' option name 'dns.pub' option type 'tls' option blacklist_ip '0' option no_check_certificate '0' option ip 'dns.pub' option enabled '1'
- 访问的域名。
在Cloudflare上面代管的域名,TTL设定2min
遇到了同样的问题
同样的问题,TTL永远不变
dig www.baidu.com @127.0.0.1 |grep ^www www.baidu.com. 888 IN CNAME www.a.shifen.com. www.a.shifen.com. 59 IN A 61.135.185.32 www.a.shifen.com. 59 IN A 61.135.169.121
sleep 20
dig www.baidu.com @127.0.0.1 |grep ^www www.baidu.com. 888 IN CNAME www.a.shifen.com. www.a.shifen.com. 59 IN A 61.135.185.32 www.a.shifen.com. 59 IN A 61.135.169.121
改成任意其他值则正常
当设置no-speed-check并开启缓存时smartdns会将上游返回的数据包直接缓存(包括原始ttl),后续从缓存获取直接返回缓存的原始数据包(相同的ttl) 当开启speed-check时缓存的是ip和ttl,再次从缓存获取会计算相应的剩余ttl.
希望作者能解决下这个问题,ttl不变很影响使用的。
#633 #787
最新版本验证,有问题reopen issue