起源

很早就想给软路由加上Dns缓存功能,之前想折腾Ros用它作为主路由的同时可以用它强大的DNS缓存功能,无奈我的软路由网卡型号比较新,做完直通后Ros是识别不到的所以只好放弃。直到用了Openwrt后又想折腾一下,要不然感觉不“完美”,所以完美踩坑SmartDns。

什么是DNS服务器?

基本上接触过网络相关知识的人应该多少都会听过 DNS 这个名词。它主要的作用就是将人们所熟悉的网址 (域名) “翻译”成电脑可以理解的 IP 地址,这个过程叫做 DNS 域名解析。因为在互联网上,网络设备只能依靠 IP 地址 (相当于互联网上的门牌号) 进行寻址定位才能建立起连接的。因此 DNS 服务器本身必须长期保持足够的稳定性,域名解析的速度要足够的快,你上网 (访问网站) 时的速度和稳定性才能得到保障。一旦 DNS 服务器“出现问题”,比如它自身故障宕机了,或者无法将网址解析出 IP 地址、解析速度特别慢,又或者解析出错误的 IP 地址等等,就会导致上网用户出现各种打不开网站、网速慢等疑难杂症了。

优质的 DNS 服务不仅只是域名解析速度快,而且还兼具一些诸如屏蔽恶意网址、智能纠错、解决部分 DNS 污染以及准确地将 CDN 解析到离你距离最近的节点 IP (从而大大提高文件的下载速度) 等功能。

SmartDNS工作流程

SmartDNS是一个运行在本地的DNS服务器,SmartDNS接受本地客户端的DNS查询请求,SmartDNS从多个上游DNS服务器获取DNS查询结果,并将访问速度最快的结果返回给客户端,提高网络访问速度。同时将解析结果进行缓存,下一次访问同一站点的时候将直接从缓存读取结果,不再走上游服务器了,所以即使上游服务器故障宕机,只要本地缓存有这个解析结果那也是可以正常上网的。因为不走上游服务器,所以本地缓存也可以提高访问网站速度。(如图)

安装

如果你在编译Openwrt时没有选择SmartDns也没关系,可以通过命令行进行安装,项目地址:移步 -> Github

配置

步骤一:进入SmartDns的基本配置页,这里我们只需要设置三个地方就好(如图)

  • 第一项就是SmartDns监听的端口,这里随便指定一个端口号,避免冲突最好是四位的端口号。(这里以6688为例,步骤七会用到)
  • 第二项需要指定重定向为:作为dnsmasq上游服务器
  • 第三项需要设置一个缓存大小,注意:这里是以kb为单位,1mb=1024kb。

步骤二:我们需要在上游服务器一栏中添加DNS服务器地址,DNS服务器端口为53,需要注意的是一个DNS服务器需要添加两条,协议类型分为UDP和TCP,如图。

步骤三:为了更好的科学上网我们需要对DNS服务器进行分流,什么意思呢?就是国内的网站走国内的DNS服务器,国外的网站走国外的DNS服务器,来达到最快解析的效果。怎么做呢?首先我们需要在上游服务器一栏中添加国外的DNS服务器地址,或者说你的科学上网工具在哪个国家就设置离它最近的DNS服务器(如图:以谷歌DNS为例)。

添加完成后点修改按钮来修改刚刚添加的这个国外DNS地址,如图我们需要修改一下服务器组名,这个随便填,但是你要记住后面要用到,修改完记得保存。

步骤四:设置第二DNS服务器,这个就是分流用的。

  • 如图修改本地端口,这个要看T子是否支持随意端口,如果仅支持5335,那么这里就得设置5335了。
  • 修改服务器组,这个要指定步骤三设置的服务器组名
  • 保存

步骤五:自定义设置添加如下代码

  • speed-check-mode tcp:443,tcp:80
  • force-AAAA-SOA yes
    什么意思呢?第一个因为现在大多数网站都是采用443端口了,所以这里强制优先访问443端口。第二个是强制禁用Ipv6,如果你使用到了Ipv6那就不需要禁用。

步骤六:设置Lan口的Dns,依次点击:网络->接口,然后点击LAN后面的修改,然后在【使用自定义DNS服务器】一栏中填路由器的IP地址,如果你的路由是后台地址是192.168.1.1那就填192.168.1.1,目的是指向路由器作为DNS服务器。

步骤七:Turbo ACC设置,依次点击:网络->Turbo ACC网络加速,然后关闭FLOW加速状态,关闭BBR加速,关闭DNS加速,点击保存&应用。目的是让路由器用SmartDns替换OpenWrt自己的Dns。一定要关这个很重要!

步骤八:设置DHCP/DNS端口转发,依次点击:网络->DHCP/DNS,然后在DNS转口转发处填入:127.0.0.1#6688(这里是步骤一设置的SmartDns监听端口),然后点击添加按钮再次填入:127.0.0.0#6688做备份用。最后点击保存&应用

步骤九,需要设置科学上网工具的DNS解析方式,为了避免和谐就不展开说了,不过需要注意的是DNS端口号需要填入步骤四设置的端口号。

九个步骤全部设置都完成了,重启下路由器就可以开启你的网络世界了!这篇文章之所以没有介绍SmartDNS的广告过滤功能,是因为下一篇文章会介绍一个更好用的去广告服务-AdGuard Home。下一篇文章打算分享一下SmartDNS+AdGuard Home的组合使用方法。喜欢折腾的小伙伴欢迎留言讨论。(在OpenWrt中使用SmartDns+AdGuardHome屏蔽广告的同时提高Dns解析速度

Last modification:January 18th, 2021 at 03:14 am
如本文“对您有用”,请作者喝杯咖啡吧!