
DNS配置得当的重要性
先说结论:
如果你在国内,优先推荐国内的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之后,苦恼没了。
原来是我自己的设备有问题。。。。。
二、
打游戏延迟忽高忽低,特别是某些过段时间就需要同步一次的游戏,在同步的一瞬间要卡一阵子。