大挪耗

家庭dns的原理以及优化

我想提升家庭的网络体验,最开始会从几乎没有成本的dns开始入手,但是我遗憾的提前告诉你,这样的提升真的很有限。

其实你一开始什么都不动(什么公共的dns都不改),至少应对国内环境,速度性能都是很高的水平。

原理是运营商在你拨号的给了你两个运营商的dns,这俩个dns访问外国网站会有问题,但是访问国内网站,会优先匹配的基于你的地理位置的速度较快的地址的,这一点要比腾讯阿里公共dns要好。用阿里腾讯dns就是污染要少一点,他们就算是有正确的dns,在发送的路上不被检测修改,到你的手里一定是要经过地理位置优选过的才可以访问,所以没有魔法访问外国网站就是在抽奖。

过程大约是这样的:手机想要访问www.ha0wen.top,手机发送给路由器,路由器一查本地网址列表没有,就会向运营商的dns发送查询请求,运营商的dns也不知道,就会继续向他的离得比较近的上游请求,最在阿里dns找到权威根dns。并依次返回到手机。手机就找到了www.ha0wen.top的地址,进而访问网站。

由此可见,一次dns可以是几十台上游dns协做返回的结果,如果上游dns服务器想要做一些手脚,也是比较容易的。因为udp,tcp是明文防火墙是可以读出的你想要访问的网站,但udp是可以随便修改的因为没有数据校验。tcp有校验不能修改,但至少是可以读出你想访问的网站以便进一步网络分析处理。

那有没有必要使用tls呢?我的回答是有用但不多。你没能力的时候你有也访问不上,有能力的时候流量就一块被加密了无法检测。

一般来说udp的dns访问速度更快,所以是国内的dns都是使用udp,但对于国外的网站因为防火墙的存在,udp快还是快但是掉包不稳定,所以外国的一般使用tcp。

目前家中使用的是adg+mos的组合,不同的需求应对不同的组合,所以要根据你自己的需求来选择合适配置与设置,懂了吗?重点在于理解而不是记忆。以我目前的实力自己是无法写出自己理想的dns服务器的,所以只能使用别人的写出的现成的dns服务。如果有一天我有能力了,我想我应该会手搓一个。

我来给大家来定义一下什么叫“快”的dns服务器,“快”在其他地方含有就单纯是对速度的描述,但对dns就是服务质量综合的考量:
dnsmasq在多层嵌套的情况下,有点压力就SERVFAIL,部分域名返回异常(人话就是“他不知道部分正常域名的地址”)。由于我家使用了网心云,部分域名返回异常,我直接放弃使用dnsmasq,dnsmasq真垃圾呀,虽然它功能多,但它bug也多呀,扛不了一点压力。
还有一些不太懂得的人追求dns响应速度,运行了一个小时,平均响应延迟在5ms以下,我不是十分赞成开启dns乐观缓存,许多情况下大场的cdn使用的比较多,ipv4的地址是改变的是非常快的,作为人类是难以察觉50ms,5ms的差距,却可以明显感觉到dns是请求了一次还是多次,所以dns的首发正确是对人的速度的感觉提升是非常的大的,家里的设备不是所有设备都有浏览器的那么智能,明显不会反应的有这么快,没有意识的到这是错误的ip地址,这导致损失了许多的流量和时间问题是clash的dns服务不允许用户停用乐观dns。
要做到快就要做到,保证dns返回的内容是正确的,是合理的。正确的即不是假的dns的响应,要做好dns的防污染的工作,合理的即在你的地区可以访问的地址,8.8.8.8返回github,steam的地址大多是正确的,但不合理,导致访问的网站速度慢甚至打不开。

目前,我在使用mos+adg的组合,我目前的不太满意的点是无法并发太多dns请求(比dnsmasq强了太多),否则就会返回空,我自己写的一定是做好优化处理,还有就如果不套dnsmasq或clash的dns访问就无法dns防泄露。


已发布

分类

可以收藏大挪耗一下。下载麻烦点城通网盘,站长保证下载速度,不会限速的,放心点就是了;分卷,安卓下载为txt:程序下载为url,不会下载参考不会下载。如果你想让本站活的久一点,请直接捐助

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注