卡卷网
当前位置:卡卷网 / 每日看点 / 正文

启用哪一个DNS网速最快?

作者:卡卷网发布时间:2024-12-04 16:04浏览数量:96次评论数量:0次

我给你答吧

我建议有点技术经验的人是:全都要

这里先说大多数人能做的

一般人就主配运营商的dns,就是自动获取就行了,再任意配个其它dns就行了

或者再看自己需求

上淘宝多,主dns就配阿里的223.5.5.5

看腾讯视频,玩王者荣耀这种腾讯系的游戏就配腾讯的dns119.29.29.29

爱逛贴吧就配百度的180.76.76.76

爱逛各种技术小博客,就配cloudflare的1.1.1.1

然后最多我们在浏览器里装一个广告屏蔽器,不去拿额外的东西,这样也可以减少打开网页的时间,比如adp,adguard之类的



我给你说下dns和网速的关联在哪里

dns只是帮你找到通讯的对方电脑的位置,说实际一点是猜对方位置,通过对方在一个长长的地址记录本里,把它电脑的名字和他的位置在dns登记在册,你去dns取这个位置,然后尝试和对方通信

你上网就是和对方电脑通信,你从它那拿东西,你也拿东西给它

那么dns起的作用是把名字转化成对方电脑的位置

你输入的网址就是对方电脑的名字,以及对方电脑上东西的名字

那你想都不用想,肯定离你最近的电脑你能最快拿到东西吧?

但是也要看路,你去这个电脑的路九里十八弯,你开个车也不可能加速,而另一个稍微远点,但是是高速,肯定就是去稍远的高速来回用时短了

再看你要拿的东西多不多,比如你把东西丢河里走水运,而一条是流速快的小河道,一条是流速相对缓慢的大河道,小河道水流快东西走得快些,但是河道窄,一次丢不了太多东西,所以东西多肯定走大河道,理想情况下是多个河道一起用,有的河道还有障碍,很可能你的东西就卡在河道某个位置很久出不来

等我们消息到了对方以后,对方又会把东西按照它的理解给我们走另外的水路运回来,那对方在处理这些消息的时候又会有延迟,你想想你去排队的时候就是这种情况,好在它现在知道我们电脑的位置了,不需要再去猜我们在哪里,

所以我们期望dns能让我们网速快,最理想情况下就是帮我们找到存有我们想要资源的距离最近,河道最宽最直的那个位置,然后我们去取

但是dns真能管这么多吗?

想要最近,那dns需要知道你的位置,然后帮你找个最近的

想要最宽,这个从原理上dns无从得知

想要最直,一般而言,距离近的就是最直的,但是这在某些地方有特例,不过你就认为距离近的就最直在很多情况下没有问题

最后有一点,就是很多时候我们不需要去拿一些东西,但是对方电脑会告诉你我还有些大宝贝给你看,等你千辛万苦跑个来回,发现是一大堆垃圾广告

实际生活中我们还在不同河道运营商的线路上丢木头,不同运营商的河道有交接的地方,这个地方一般不是特别宽,所以大家的木头就等着排队

这里也是影响你木头的运输速度的

这个地方dns或许能帮你,如果对方登记过多个地址,理想情况下dns会给我们相同运营商的地址

所以我们能从dns上对网速做出改变的,距离近的一般响应速度越快,但是河道有多宽并不能保证,河道宽度就是dns无法解决的问题了,这个有两个办法尝试去提升,但是最终决定还是在对方位置最后一段河道的宽度

所以我们能做的有以下几点

  1. 多找几个dns,告诉它们我自己的位置,然后都问一遍对方存东西的位置,我们会得到较多的位置
  2. 对这些位置进行测试,我们要是去测线路直不直就消耗太多时间了,测河道宽度也消耗时间,而且河道拥挤程度还要取决于河道里木头多不多,所以我们能做的只有看看到哪个位置用时最短,不管它距离远近,河道宽度了
  3. 找到往返用时最短的,然后且就和它通讯吧,现在的技术情况下确实不能达到一个理想情况,我们不能在较短的时间内获知对方存东西的地方的很多信息
  4. 对于一些自己探测过的或者非常熟悉的位置,可以自己做优化,取这些位置东西的时候就直接去取,不用再问dns这些东西的位置,这就省去了询问的时间,也免去了不小心找个很难到的地方的问题。

好了,所有分析我们大致都过了一遍,技术上我们要做的可能很多人都做不到,所以一般人你就随便配dns吧,一般运营商的优先,阿里腾讯114cloudflare之类的也可以

说一下cloudflare,因为它自己在提供cdn暂存服务,就是它帮对方电脑把一些东西分散在全球各地仓库,有点像京东就近发货,哪离你近它就让你去它那拿,这样也实现了把同一批东西拆到不同地点的需求,免得有些恶霸在某一条路上拦路抢劫,你那一批东西就一直取不到的情况

所以设置cloudflare的1.1.1.1也是有这个好处的

不过其他dns也有这个功能的,比如你爱看腾讯视频,那腾讯的dns也会告诉你,你想看的电影最近的位置

所以我们怎么办呢,windows上默认是并发查询的,windows最多可以指定哪些域名走哪个dns,

Assign a Conditional Forwarder for a Domain Name



好了,以下就是简述我们怎么全都要



那么我们来个进阶一点的吧,给稍微懂一点的人说一下思路

1.我们设置一个较大的本地缓存,这样我们直接就能本地查到地址,省去了跑外面的dns去跑个来回问一遍,再回来又跑去找东西的时间

2.保证本地缓存的更新,东西的位置经常在变,这个倒是简单,大多数dns程序都会有这个基本功能

3.带上自己的位置,方便dna给你分配离你最近的位置

4.多条dns查询,这里有几个策略了,是拿返回速度最快的那个dns给的地址,还是说我们自己再测一遍,看这些地址哪个响应时间最短呢。拿回快只能说明dns服务器和你的距离近或者dns以及路线不拥挤,不能说明拿到的服务器位置近,所以相对而言我们还是就自己测一遍,拿响应时间最短的服务器地址来缓存吧

4.去广告以及追踪隐私用的位置,不能说你去看个文章,别人说把你身份证发过来,你就发过去吧

大致也就这些了

技术上我们采用在本地自建多个dns程序套娃实现

一般而言我们的本地dns没有公网接口,所以采用以下方案

我们可能用到的有adguardhome,smartdns,mosdns,我们将要搭建三层dns

  1. 缓存层:本地缓存可以任意用一个dns程序,比如adguardhome,smartdns,mosdns,去广告和隐私追踪我们就放在缓存层,采用adguardhome的目的是使用它的界面,能直观看到哪些域名被拦截,哪些域名请求次数最多,当缓存设置够大,请求次数足够多的时候,缓存层的响应速度会变得非常快。
  2. 分流层:mosdns用于指定ecs,这样可以把自己的位置信息封装在dns请求里,并且可以指定域名查询指定的dns
  3. 检测层:smartdns监听多个端口,分别配置不同的dns查询地址,以供mosdns分流使用,开启ecs透传,保证位置信息不丢失。

简述dns请求流程如下

  1. 本地客户端发起dns请求,从adguardhome查询缓存或者是否是广告等需要拦截的请求,如果满足要求则立刻返回地址
  2. 如果不满足,则dns请求流到mosdns,mosdns添加ecs信息,并根据不同的服务域名,比如腾讯视频发给负责请求腾讯dns的smartdns监听端口,是淘宝域名则发给负责请求阿里dns的smartdns监听端口,如此类推
  3. 由smartdns转发由mosdns封装了位置信息的dns请求到对应dns服务器,然后smartdns会把拿到的地址再ping一遍,找到相应速度最快的服务器返回给mosdns,mosdns再返回给adguardhome,缓存下来的同时返回给本地客户端,本地客户端再缓存这些地址,并以这些地址发起资源请求。
  4. 如果有多种线路接入,同样可以在mosdns里把对应出口的dns请求配置成相应的ecs,搭配路由程序,即可实现不同运营商分别请求对应最快的服务器位置的需求。
  5. 如果缓存层不是那么大,缓存层的请求数不多的话,而且出口查询地址的话不考虑查询信息隐私泄露的话,可以不考虑配置doh之类的走tcp的查询请求,就使用常规的53端口也行,这样整体查询链路的速度会比较快。

以上就是目前技术环境下能做的了

END

免责声明:本文由卡卷网编辑并发布,但不代表本站的观点和立场,只提供分享给大家。

卡卷网

卡卷网 主页 联系他吧

请记住:卡卷网 Www.Kajuan.Net

欢迎 发表评论:

请填写验证码