介绍
DNS
域名系统(英语:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。通常情况下本地的解析请求会发送到离你最近的 DNS 服务器,它可能是你的无线路由器、宿舍楼梯下的服务器或者运营商的地区性服务器等,但由于各种原因导致解析效果不理想,延迟高等问题,这时可以考虑换一个网络质量好的域名解析服务,错峰出行,减少拥堵。
SmartDNS
SmartDNS 集成了多种出栈请求协议,包括常用的 UDP 和较为现代的 DNS-Over-Https 等,能够在给定的规则列表中挑选出一个延迟最低的域名解析服务,并向其发送请求。同时其内部也提供 DNS 缓存,如果缓存能够命中则直接从本地缓存中返回对应 IP 地址,如未能查找到则继续向上级 DNS 服务传播请求。

配置
推荐项目:dnsmasq-china-list
作者肥猫在其项目中提供了几个较为常用的匹配规则列表,对于非 Arch Linux 用户而言可以把项目克隆到本地然后构建对应的配置文件,而 Arch 用户可以从 CN 源 里安装 smartdns-china-list-git 以获取自动更新。
生成对应的配置文件操作如下,具体参考,可见其生成形式为 nameserver /<域名>/<组名>,后面的组名就是对应我们后来需要的匹配规则而制定的。
| |
默认的配置文件中有很多不常用的项目,作为自己的配置文件一般精简到自己需要的功能配置即可。
| |
更多 DNS 服务地址:dnscrypt.info
如果有多个分组需求,可以自定义规则配置文件,服务配置后面再添加 -group [组名]。
被 -exclude-default-group 标记为排除在默认组之内的服务需至少在一个组才可能被访问到。
启动
| |
默认在后台运行,推荐使用自带的 systemd service 来进行管理,如果 /ect/resolv.conf 没有被更改成监听本地的话可以检查一下文件是否有特殊标志位(lsattr),手动修改即可(chattr )。
| |
![Featured image of post [归档] SmartDNS 一个智能分流的 DNS 服务](/p/%E5%BD%92%E6%A1%A3-smartdns-%E4%B8%80%E4%B8%AA%E6%99%BA%E8%83%BD%E5%88%86%E6%B5%81%E7%9A%84-dns-%E6%9C%8D%E5%8A%A1/banner_hu9140ed4ac8f869cb7580a737acf169a1_258150_800x0_resize_q75_box.jpg)