找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 14179|回复: 10

关于smartdns的一些个人理解

[复制链接]
发表于 2022-5-20 16:07 | 显示全部楼层 |阅读模式
本帖最后由 nakesa 于 2022-5-20 18:42 编辑

其实好早之前就试着使用smartdns配合不可描述,然而dns分流那块很明显没设置好,导致各种网络异常。
这段时间有空,就再次折腾了起来,顺便照着各大帖子看了下,少有讲解原理部分的。想着把自己的一些理解写出来,还望大佬们不吝赐教。



测试环境:smartdns+p@ssw@II
个人建议,先把dnsmasq的缓存设置成0,免得一些奇奇怪怪的问题。




如图所示的国内组设置


1.要注意下,tcp服务器在smartdns配置文件里面是bind-tcp,是绑定本地路由器的6053(图示,根据自己的来)端口,监听dns tcp请求。你向本地路由器请求dns解析,使用udp就可以了,关键是上游服务器设置!真担心污染的话,上游配置dot/doh,但别忘记添加个常规dns,不然doh域名无法解析。
2.ipv6服务器选项,个人理解是监听来自局域网ipv6客户端的dns请求
3.双栈IP优选,适合同时具有ipv4和ipv6网络的人。因为ipv6会抢答dns,但是ipv6的网络不一定有ipv4快,有时就会导致网络访问缓慢,设置这个可以对ipv4和ipv6的解析地址进行测速,选择最快的那个。
4.域名预加载,开启此功能会在TTL过期前3s刷新。
5.过期缓存服务,开启此功能后,如果有请求时尝试回应 TTL 为 0 的过期记录(我之前不太理解这里,后来反应过来,过期记录不代表是无效记录,大部分情况下依然可以使用,这样设置能避免查询等待
6.重定向功能有个地方需要注意,当你设置--作为dnsmasq的上游服务器时,需要禁用dnsmasq的缓存(不禁用的话,比如ttl相关的设置就会延迟)
7.ttl最小值和最大值是一个筛选作用,ttl_max=>ttl>=ttl_min,筛选出的结果将其ttl重设为你设定的ttl值(如图,86400即一天)
8.最下方的ttl最大值是传递给客户端的,这个设置对于分流很有用!
我设置成10是为了保证每次切换服务器,都能解析到正确的地址。设置这么低是配合第二dns服务器

第二dns服务器设置

1.为什么跳过测速。
经过测试,关闭smartdns,直接到日本服务器上运行nslookup www.github.com,解析出来的是东京的ip。不关闭,解析出来是新加坡的ip。个人猜测,这个测速并不是测试的vps到解析ip的速度,而是路由器到解析ip的速度。这就导致最后返回给客户端的解析ip是离你最近,而不是离服务器最近,这也是导致部分网站打开速度特别慢的原因之一。我也测试了其他服务器,解析出来的ip千奇百怪。

也许有别的方法可以将测速放到服务器上面,但我没试出来。。。



2.跳过address规则、跳过Nameserver规则、跳过ipset规则、跳过address SOA(#)规则,这里主要是我没去设置这些东西,所以开启关闭对我是一样的。个人感觉这些功能另有用处,没去研究。
3.跳过双栈优选,这个也是为了防止ipv6抢答,但是你本地和节点都有ipv6的情况下,可以不跳过。(前提是规则做好)
4.跳过cache,这个是dns分流必须选的。缓存会保留你上一次请求的dns解析结果,但是!!!切换服务器,特别是切换到不同地区的,那这个缓存的解析结果就会导致你基本上失去大部分网站的访问(我感觉很多ip都设置了仅限本地区ip访问,其余的ip请求就直接drop了,可能是为了防止ddos?)
这个跳过cache,因为是第二dns服务器的设置,所以不影响国内。

之前在基本设置选项里面,将返回给客户端的TTL最大值设置为10,是因为我既想保留国内网站最快的解析结果,又不想科学网络的解析长期驻留(因为要切换不同地区的服务器)。这样组合出来的结果就是,国内dns解析,保存在路由器一天(86400秒),客户端不管什么结果都只保留10秒,时间一到就向路由器发送请求,命中了smartdns的缓存就返回给客户端,没命中就像上游dns服务器请求解析结果。而科学网络没有设置缓存,所以每次都会通过服务器去请求,这样得到的地址就正确了。
ps:踩过坑,我头铁把返回给客户端的TTL最大值设置为86400,结果就是。。。。

这样做要么一直不切换服务器线路,要么切换了,自己手动刷新电脑的dns。图省事就改成10,反正udp请求快的很,对路由器也没啥负载。smartdns不能针对第二dns服务器单独设置ttl,木的法子。
5.Force AAAA SOA,这个也是跟ipv6有关的。不过我没搞明白。作用是强制AAAA 地址返回SOA
AAAA记录: 将主机名(或域名)指向一个IPv6地址(例如:ff03:0:0:0:0:0:0:c1),需要添加AAAA记录
SOA记录: SOA叫做起始授权机构记录,NS用于标识多台域名解析服务器,SOA记录用于在众多NS记录中那一台是主服务器


自定义设置


这个可以按照官方文档来设置,我只改了测速模式,反正经过之前的设置,测速只对国内有效。


防火墙设置
注释掉53端口的规则就可以了,不然smartdns总提示重定向错误!


一个坑点!
由于我使用了p@ssw@II的icmp劫持,所以ping一些地址的延迟是低于1ms的。必须在第二dns上游服务器的额外的服务器参数里面设置-exclude-default-group,不然之前设置的测速模式里面就不能有ping这个,不然怎么巨特么容易解析到科学ip。
另一个坑点!
别忘了让第二dns组的dns服务器走科学隧道!!!虽然大部分插件都默认设置好了,但是保险起见,还是看下配置把。

还有个奇怪的BUG,我不能把重定向设置为---重定向53端口到smartdns,不然国内外都解析不出结果。因为固件本身没有集成,可能是插件冲突把,反正dnsmasq缓存设置成0,效果也一样。

细节注意哦,有些视频博主说要把第二
dns服务器组设置成dot/doh,说是为了防国内dns污染,这是错误的,第二dns服务器组的请求都转发出去了,国内哪里污染的了,设置dot/doh是为了服务器自身dns请求不被篡改,跟国内没关系。
再一个是加速国外,记住第二dns服务器组是不进行ip测速的,所以逻辑上应该是谁最快给结果,服务器就返回谁的给路由器。我觉得这个加速效果更多体现在部分网页通过一个dns解析太慢,设置多个dns就能并发查询,减少等待过程的时间,而不是测出最快的ip给服务器。


这两天就光折腾smartdns,一些自己的理解分享出来。能帮助朋友们理解是最好的了,当然,可能有些介绍有错误,劳烦大家指正。




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-5-20 23:12 | 显示全部楼层
很详细啊,又学到不少,感谢分享~
我之前用SmartDNS,最近在捣鼓MosDNS,楼主有空也可以看看呀
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-5-21 08:28 | 显示全部楼层
过期缓存服务最好不要选,因为一些域名是动态ip的,会出现一会儿打得开,一会儿不会不开。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-5-21 17:53 | 显示全部楼层
重定向错误和防火墙的设置关系不是很大,我也遇到过,搜了很多帖子,大概率是科学上网接管了dnsmasq,启动顺序又在smartdns前,端口被劫持了,有些人是调整smartdns和科学上网的启动顺序解决的。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2022-5-21 21:52 | 显示全部楼层
更正一下,dnsmasq的缓存不要设置成0,因为p@ssw@II依赖于dnsmasq,设置成0的话会有异常。在smartdns里面改ttl就好
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-5-25 22:50 | 显示全部楼层
看的云里雾里,明天照搬试试
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-5-26 23:12 | 显示全部楼层
本帖最后由 frankilla 于 2022-5-26 23:18 编辑

我之前爬了一下开发者的issue,【基本设置】里除了勾选过期缓存服务,重定向为dnsmasq上游(不过最近爬到一个issue作者说不要设为上游,会出现小问题。我就???这个自行判断吧,我没遇到问题?),缓存大小10240,ttl最小600外其他都默认。
第二DNS,手动设置本地端口,服务器组自定义,勾选跳过测速,nameserver 双栈优选,跳过cache,force aaaa soa以外其他默认,
自定义页面设置测速 tcp:443,ping (管理员推荐)国外DNS排除默认组。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-6-29 20:26 | 显示全部楼层
如何设置smartdns的缓存直接调用主路由ros的?
不然主旁路由都缓存国内的dns有点浪费。
再一点,开y站第一次总是解析不出来,不知道为什么。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-7-28 09:10 | 显示全部楼层
写得非常好。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2023-2-7 22:50 | 显示全部楼层
谢谢楼主慷慨
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2024-3-15 09:49 | 显示全部楼层
很详细的心得,赞
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-26 04:03

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表