菜鸟笔记
提升您的技术认知

OpenWrt安装并配置SmartDNS

阅读 : 59

简介

SmartDNS 是一个运行在本地的 DNS 服务器,它接受来自本地客户端的 DNS 查询请求,然后从多个上游 DNS 服务器获取 DNS 查询结果,并将访问速度最快的结果返回给客户端,以此提高网络访问速度。 SmartDNS 同时支持指定特定域名 IP 地址,并高性匹配,可达到过滤广告的效果; 支持DOT(DNS over TLS)和DOH(DNS over HTTPS),更好的保护隐私。

与 DNSmasq 的 all-servers 不同,SmartDNS 返回的是访问速度最快的解析结果。

支持树莓派、OpenWrt、华硕路由器原生固件和 Windows 系统等。

SmartDNS Github页面:https://github.com/pymumu/smartdns

SmartDNS官网:https://pymumu.github.io/smartdns

安装

访问Github Release页面进行下载:https://github.com/pymumu/smartdns/releases

找到自己对应的架构版本:

OpenWrt安装并配置SmartDNS
OpenWrt安装并配置SmartDNS

将其下载到本地。

还是通过【系统】的【软件包】进行上传安装,先安装依赖,再安装程序文件。

安装完成后刷新页面,在【服务】中可以看到SmartDNS。

配置

常规设置

OpenWrt安装并配置SmartDNS

高级设置

OpenWrt安装并配置SmartDNS
OpenWrt安装并配置SmartDNS
OpenWrt安装并配置SmartDNS

什么是 TTL?

TTL是 Time To Live (生存时间)的缩写。主要指在 DNS 解析中,DNS服务器缓存解析记录的时间。例如:TTL = 600秒,意味着 DNS 服务器缓存解析记录 600 秒(十分钟),在这十分钟内更改 DNS 解析的记录值是不会生效的,需要等十分钟后,DNS 服务器缓存更新才可以生效。

设置的时间长短对网站有什么影响?

  1. TTL值大 = 减少DNS递归查询过程,提升域名解析速度。

    稳定的网站,其 DNS 的解析记录发生变更的频率比较低。

    如果 TTL 值比较大, DNS 的解析结果在全国各地 localdns 中的缓存时间很长,这样当用户访问网站时,就无需经过复杂的 DNS 的递归解析过程。通过最近的本地 DNS 返回域名的解析结果,解析速度变快。

  2. TTL值小 = 更新速度快。

    网站在新创阶段,因为需要频繁测试,其 DNS 的解析记录发生变更的频率比较高。如果 TTL 值比较小,解析速度很快就会生效。

第二DNS服务器

该组服务器基本上用于以后解析国外地址使用,所以限定【服务器组】简称为 EN。规则都可以跳过。

OpenWrt安装并配置SmartDNS

上游服务器

这边比较关键,可以访问 免费公共 DNS 服务器大全 进行填写。如果使用IPv6的话,也不用填写IPv6的DNS。

建议填写10个-15个,不用填太多,因为发送信息给DNS服务器也要时间。

在添加DNS时,【服务器组】最好区分开来,国内的就用 CN ,国外的简称为 EN

OpenWrt安装并配置SmartDNS

全部填写完成后点击底部的【保存并应用】。

小Tips

如果是为了追求速度,那么可以按照上述方法将UDP这类DNS填写进去,解析速度会快那么稍微亿点点

如果是为了安全无污染,那么只要填写httpstls 这两类DNS,解析速度相对会降低,但是几乎感觉不到,这样做的好处也是比较明显的:手机app打开时的各种广告会屏蔽掉80%左右(估算值,测试下来10款app,只有2款还能看到开启的广告,其余都是直接进入到应用界面),然后也能正常访问一些被污染的网站了(类似Google这种完全屏蔽的还是不行)。

OpenWrt安装并配置SmartDNS
OpenWrt安装并配置SmartDNS

使用HTTPS和TLS的好处

  • 隐私保护: HTTPS和TLS加密DNS可以确保DNS查询的隐私,防止第三方监视者或互联网服务提供商(ISP)跟踪DNS活动。这意味着你的DNS查询不会被用于广告跟踪或其他潜在的隐私侵犯行为。

  • 数据完整性: TLS加密DNS可以确保查询结果在传输过程中不被篡改或损坏。这有助于防止DNS污染或恶意劫持攻击,确保获取的是真正的DNS响应。

  • 安全性提升: 通过加密DNS,可以减少受到DNS欺骗和DNS投毒等攻击的风险。这使得恶意攻击者更难以操纵DNS解析,从而提高了互联网安全性。

  • 绕过内容过滤和审查: 在某些地区,GOV或互联网服务提供商可能会对DNS进行审查或过滤,以阻止访问特定网站。使用加密DNS可以绕过这些封锁,可以更自由地访问互联网。

  • 域名验证: TLS加密DNS提供了额外的域名验证层,确保DNS查询连接到了正确的DNS服务器,而不是恶意伪装成合法服务器的攻击者。

在自由上网的同时,请谨记:互联网不是法外之地!

没完的结尾

其中到这一步并没有结束,因为它只是运行起来了,但是并没有发生作用。

计划在下一章安装 AdguardHome ,配合SmartDNS来进行广告过滤。

如果不想安装 AdguardHome 就想直接使用的话,在【常规设置】中,勾选【自动设置Dnsmasq】即可。

最后

网上其实对于SmartDNS也是褒贬不一,在我实际体验下来,解析速度也确实没有一个明显的提升(纯个人感官,没有数据支撑),而且在使用的过程中,经常会出现莫名其妙【未运行】或者显示【已运行】,但是实际不产生作用的情况,网上查询下来,可能的原因是弃用了 dnsmasq 改用 dnsmasq-full 导致的,但是dnsmasq-full又是必须的,所以目前本人已经弃用 SmartDNS。。。

顺便说一下,最近有点火的 MosDNS ,和SmartDNS差不多,感兴趣的小伙伴可以自行研究一下。