先说结论:
如果你在国内,优先推荐国内的DNS,例如阿里(223.5.5.5,223.6.6.6),腾讯等DNS。

不要用114.114.114.114。

不要用1.1.1.1和8.8.8.8。

下面是我遇到的因为DNS配置导致的问题,以及解决问题的过程。

起因

我家中是300M的宽带,在夜晚凌晨,就我一个人在上网。

既不是晚高峰,也没有干扰,我的电脑和路由器只有10厘米距离。

但是!无论开什么网页都挺慢,特别是bilibili,弹幕加载不出来,评论加载不出来,1080的视频加载不出来。

无论怎么刷新都不行。

更奇怪的是,开了梯子之后,反而可以秒加载。

起疑

我的网再差,也不至于差成这样啊。

而且既然梯子能秒开,说明网速不差。

那这是因为什么呢。

排查

我首先第一个排查的,就是DNS,我的DNS服务器是1.1.1.1和8.8.8.8,我对他们进行ping

因为DNS服务器只是起一个解析作用,通过DNS查询到目标所在位置,剩下的就是“我”与目标的通信了。

由于我一直常开梯子,且一直跟几百毫秒的服务器打交道,所以40毫秒被我归入了一个正常的范围内。

但是我忽略了一个问题,那就是,CDN

让我们继续往下看。

此时我觉得DNS正常,那么我的第二关注点就是qos了。

因为梯子用的是hysteria2协议,hysteria2协议可以在一定程度绕过qos。

我关掉梯子进行测速,但是不管是哪个测速站,都是能跑满带宽的。

但是,在www.speedtest.cn这一个测速站中,他在最后有一个延迟测试,我的各个延迟为300ms

非常可怕。

我立刻开始进行路由追踪。

结果出乎意料

这就是为什么,国内不要用国外DNS了

他解析到了B站在国外的CDN上了。

所以我一直是用国内网络访问国内服务的国外CDN。

而我打开梯子进行路由追踪,结果如下:

结果

问题水落石出。

之所以访问慢,是因为Cloudflare的DNS将目标解析到处于国外的CDN上了,导致我的请求饶了一大圈,最后落到了国外。

而开梯子却能秒开,是因为梯子充当了我的DNS服务器,并且进行了正确的解析。

吐槽

为什么不让用114.114.114.114

会阻断所有未备案域名,如果你使用了这个DNS,你连我的博客都打不开。

DNS带来的影响

一、

我一直在想尽各种办法优化我博客的加载速度,图床的加载速度。

但是一直不尽人意,总有一点点卡顿。

这让我很苦恼。

今天改好了DNS之后,苦恼没了。

原来是我自己的设备有问题。。。。。

二、

打游戏延迟忽高忽低,特别是某些过段时间就需要同步一次的游戏,在同步的一瞬间要卡一阵子。