介绍
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
)。
|
|