smartdns
smartdns copied to clipboard
默认情况下国内网站是否需要开启speed-check-mode
问题现象
简要描述问题出现的现象
运行环境
- 固件型号
x86-64 Debian11 - 运营商
china unicom 重现步骤 - 上游DNS配置。
223 114 dnspod - 访问的域名。
any
信息收集
- 将/var/log/smrtdns.log日志作为附件上传。
- 如进程异常,请将coredump功能开启,上传coredump信息文件。
在自定义界面,开启设置->自定义设置->生成coredump配置,重现问题后提交coredump文件 coredump文件在/tmp目录下
请问默认情况下正常浏览网络,无特殊翻墙等需求下,是否要开启speed-check-mode测速功能,如果需要的话建议开启443还是80? 如果不需要开启的话,保持默认此项的配置配置还是需要指定命令speed-check-mode none? 另外无论是否指定 speed-check-mode 命令none的话是否还会反回最快ip?反回最快ip的依据是什么?感谢
看运营商和你的网络地址,以及你访问网络的诉求。
一、如果是如下情况:
- 仅访问国内网站。
- 有公网IP地址。
- 无IPv4,IPv6双栈诉求。
基本上可以不需要测速,服务器返回的IP地址一般都是最佳IP,测速是无用的 大部分情况是ECS的部署和CDN的部署。
当然国内部分网站域名配置不合理,测速也是有一定作用的,比如qq.com(不是www.qq.com),解析的时候,返回4个地址,就有快,有慢,如果第一个是慢的,那么你访问的速度就慢,这是测速就有用了,但这种情况,对国内的网站应该不多见。 如下面的结果:203.205.254.157是HK的IP,并且返回在了第一个结果,那你用浏览器打开页面就慢了。
dig qq.com @223.5.5.5
;; ANSWER SECTION:
qq.com. 548 IN A 203.205.254.157
qq.com. 548 IN A 123.151.137.18
qq.com. 548 IN A 183.3.226.35
qq.com. 548 IN A 61.129.7.47
二、除了上面说的,下面的情况,smartdns都是有用的。
- 需要直连访问国外网络:
一般国内DNS服务器对国外支持较差,查询国外网站的IP地址不一定是最好的,这时类似8.8.8.8的就比较好用了。但8.8.8.8对国内支持一般。这种情况,就靠smartdns测速返回结果。
- 无smartdns方法:在不用smartdns的情况下,可以采用分流解决,国内域名用国内DNS,国外域名用国外DNS。但分流要手工配置域名,比较麻烦。
- 用smartdns优势:同时配置国内外DNS服务器,smartdns就是动态检查,找最快,避免配置。
- 部分游戏要求。
比如PS,switch等,部分DNS服务器返回的IP地址比较好,这时可以给游戏主机单独配置,或分流。光靠国内域名是不行的。
- 无smartdns方法:在不用smartdns的情况下,可以采用分流,配置HOST解决。但分流要手工配置域名,比较麻烦。
- 用smartdns优势:smartdns就是动态检查,找最快,避免配置。
- DNS或服务器down掉的容错。
- 无smartdns方法:无解,等服务器恢复,或自己配置HOST。
- 用smartdns优势:smartdns会找到能工作的服务器,基本无感知。
- 国内移动网络,或处于运营商NAT网络。
- 无smartdns方法:要看运营商NAT路由出口,有块有慢,最好是用运营商的DNS,运营商有本地CDN。
- 用smartdns优势:找到最快的地址。
- IPv4,IPv6双栈同时存在的诉求。
- 无smartdns方法:可以粗暴关闭IPv6解析解决。
- 用smartdns优势:V4,V6共存,并且不影响访问速度。
关于参数: speed-check-mode默认情况下就是推荐的配置,无需修改。80和443没有区别。除非某些服务将80设置了黑洞。 配置none的话,是返回的最早回应的DNS结果里面的IP地址。
感谢您的详细答复,基本把我最近2年来所有对smartdns的疑惑解答了,非常感谢,感觉其他用户也可以参照此答案,再次感谢!
qq.co 有好多个IP,我一度以为我的配置出问题了
看运营商和你的网络地址,以及你访问网络的诉求。
一、如果是如下情况:
- 仅访问国内网站。
- 有公网IP地址。
- 无IPv4,IPv6双栈诉求。
基本上可以不需要测速,服务器返回的IP地址一般都是最佳IP,测速是无用的 大部分情况是ECS的部署和CDN的部署。
当然国内部分网站域名配置不合理,测速也是有一定作用的,比如qq.com(不是www.qq.com),解析的时候,返回4个地址,就有快,有慢,如果第一个是慢的,那么你访问的速度就慢,这是测速就有用了,但这种情况,对国内的网站应该不多见。 如下面的结果:203.205.254.157是HK的IP,并且返回在了第一个结果,那你用浏览器打开页面就慢了。
dig qq.com @223.5.5.5 ;; ANSWER SECTION: qq.com. 548 IN A 203.205.254.157 qq.com. 548 IN A 123.151.137.18 qq.com. 548 IN A 183.3.226.35 qq.com. 548 IN A 61.129.7.47二、除了上面说的,下面的情况,smartdns都是有用的。
需要直连访问国外网络: 一般国内DNS服务器对国外支持较差,查询国外网站的IP地址不一定是最好的,这时类似8.8.8.8的就比较好用了。但8.8.8.8对国内支持一般。这种情况,就靠smartdns测速返回结果。
- 无smartdns方法:在不用smartdns的情况下,可以采用分流解决,国内域名用国内DNS,国外域名用国外DNS。但分流要手工配置域名,比较麻烦。
- 用smartdns优势:同时配置国内外DNS服务器,smartdns就是动态检查,找最快,避免配置。
部分游戏要求。 比如PS,switch等,部分DNS服务器返回的IP地址比较好,这时可以给游戏主机单独配置,或分流。光靠国内域名是不行的。
- 无smartdns方法:在不用smartdns的情况下,可以采用分流,配置HOST解决。但分流要手工配置域名,比较麻烦。
- 用smartdns优势:smartdns就是动态检查,找最快,避免配置。
DNS或服务器down掉的容错。
- 无smartdns方法:无解,等服务器恢复,或自己配置HOST。
- 用smartdns优势:smartdns会找到能工作的服务器,基本无感知。
国内移动网络,或处于运营商NAT网络。
- 无smartdns方法:要看运营商NAT路由出口,有块有慢,最好是用运营商的DNS,运营商有本地CDN。
- 用smartdns优势:找到最快的地址。
IPv4,IPv6双栈同时存在的诉求。
- 无smartdns方法:可以粗暴关闭IPv6解析解决。
- 用smartdns优势:V4,V6共存,并且不影响访问速度。
关于参数: speed-check-mode默认情况下就是推荐的配置,无需修改。80和443没有区别。除非某些服务将80设置了黑洞。 配置none的话,是返回的最早回应的DNS结果里面的IP地址。
补充提问:在上述之前描述的环境下,如果没有开启双栈优选,开启测速speed-check-mode ping,tcp:80 的情况下会返回几个地址?是ipv4/6各一个?还是最快的那个
看运营商和你的网络地址,以及你访问网络的诉求。
一、如果是如下情况:
- 仅访问国内网站。
- 有公网IP地址。
- 无IPv4,IPv6双栈诉求。
基本上可以不需要测速,服务器返回的IP地址一般都是最佳IP,测速是无用的 大部分情况是ECS的部署和CDN的部署。
当然国内部分网站域名配置不合理,测速也是有一定作用的,比如qq.com(不是www.qq.com),解析的时候,返回4个地址,就有快,有慢,如果第一个是慢的,那么你访问的速度就慢,这是测速就有用了,但这种情况,对国内的网站应该不多见。 如下面的结果:203.205.254.157是HK的IP,并且返回在了第一个结果,那你用浏览器打开页面就慢了。
dig qq.com @223.5.5.5 ;; ANSWER SECTION: qq.com. 548 IN A 203.205.254.157 qq.com. 548 IN A 123.151.137.18 qq.com. 548 IN A 183.3.226.35 qq.com. 548 IN A 61.129.7.47二、除了上面说的,下面的情况,smartdns都是有用的。
需要直连访问国外网络: 一般国内DNS服务器对国外支持较差,查询国外网站的IP地址不一定是最好的,这时类似8.8.8.8的就比较好用了。但8.8.8.8对国内支持一般。这种情况,就靠smartdns测速返回结果。
- 无smartdns方法:在不用smartdns的情况下,可以采用分流解决,国内域名用国内DNS,国外域名用国外DNS。但分流要手工配置域名,比较麻烦。
- 用smartdns优势:同时配置国内外DNS服务器,smartdns就是动态检查,找最快,避免配置。
部分游戏要求。 比如PS,switch等,部分DNS服务器返回的IP地址比较好,这时可以给游戏主机单独配置,或分流。光靠国内域名是不行的。
- 无smartdns方法:在不用smartdns的情况下,可以采用分流,配置HOST解决。但分流要手工配置域名,比较麻烦。
- 用smartdns优势:smartdns就是动态检查,找最快,避免配置。
DNS或服务器down掉的容错。
- 无smartdns方法:无解,等服务器恢复,或自己配置HOST。
- 用smartdns优势:smartdns会找到能工作的服务器,基本无感知。
国内移动网络,或处于运营商NAT网络。
- 无smartdns方法:要看运营商NAT路由出口,有块有慢,最好是用运营商的DNS,运营商有本地CDN。
- 用smartdns优势:找到最快的地址。
IPv4,IPv6双栈同时存在的诉求。
- 无smartdns方法:可以粗暴关闭IPv6解析解决。
- 用smartdns优势:V4,V6共存,并且不影响访问速度。
关于参数: speed-check-mode默认情况下就是推荐的配置,无需修改。80和443没有区别。除非某些服务将80设置了黑洞。 配置none的话,是返回的最早回应的DNS结果里面的IP地址。
当前遇到的一个问题,在使用如下配置时,nslookup会返回多个地址,包含ip4/6(已确保清空客户端缓存的情况下)
server-name smartdns
server 223.5.5.5 -check-edns server 202.102.128.68 -check-edns server 202.102.134.68 -check-edns server 119.29.29.29 -check-edns server 1.2.4.8 -check-edns server 114.114.114.114 -check-edns bind [::]:53 bind-tcp [::]:53 cache-size 51200 cache-persist yes cache-file /root/smartdns.cache prefetch-domain yes serve-expired yes serve-expired-ttl 0 speed-check-mode ping,tcp:80 log-level warn log-file /tmp/log/smartdns.log log-size 128k
补充提问:在上述之前描述的环境下,如果没有开启双栈优选,开启测速speed-check-mode ping,tcp:80 的情况下会返回几个地址?是ipv4/6各一个?还是最快的那个
新版本会返回包含测速最快结果在内的完整结果。可以使用 max-reply-ip-num 限制返回结果的数量
补充提问:在上述之前描述的环境下,如果没有开启双栈优选,开启测速speed-check-mode ping,tcp:80 的情况下会返回几个地址?是ipv4/6各一个?还是最快的那个
新版本会返回包含测速最快结果在内的完整结果。可以使用 max-reply-ip-num 限制返回结果的数量
感谢提醒,如果max-reply-ip-num 2 那么会返回最快的2个地址,并不会区分ip4/6是吗
当前遇到的一个问题,在使用如下配置时,nslookup会返回多个地址,包含ip4/6(已确保清空客户端缓存的情况下)
这块后来改了不少 我平时不开ipv6 双栈的结果我不了解
如果max-reply-ip-num 2 那么会返回最快的2个地址,并不会区分ip4/6是吗
新版会把测速最快的结果作为返回的首个结果 至于第二个 目前没有相关资料 猜测是会按上游应答结果的顺序取下一个
当前遇到的一个问题,在使用如下配置时,nslookup会返回多个地址,包含ip4/6(已确保清空客户端缓存的情况下)
这块后来改了不少 我平时不开ipv6 双栈的结果我不了解
如果max-reply-ip-num 2 那么会返回最快的2个地址,并不会区分ip4/6是吗
新版会把测速最快的结果作为返回的首个结果 至于第二个 目前没有相关资料 猜测是会按上游应答结果的顺序取下一个
简单测试了一下 当参数max-reply-ip-num 1 同时启用测速时 会返回一个ip4和一个ip6 当max-reply-ip-num未设置 并启用测速时 会反回多个ip4和多个ip6 例如www.iqiyi.com www.cctv.com 测试版本[Release 37 RC1] 测试不够严谨,仅作参考吧
最新版本验证,有问题reopen issue