一个运行在本地的DNS服务器_高性匹配,可达到过滤广告效果!分享一个好玩的项目前期预告~

观前提示:

1、煽动抗拒、破坏宪法和法律、行政法规实施,或者其他违反宪法和法律、行政法规的。

2、煽动颠覆国家政权、分裂国家、破坏祖国统一和损害国家机关信誉的。

对个人可以并处五千元以下的罚款,必要时还可以取消联网资格。

好了,现在正式开始:

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

SmartDNS 返回的是访问速度最快的解析结果!

常见问题

SmartDNS 和 DNSmasq 有什么区别?

SmartDNS 在设计上并不是 DNSmasq 的替代品,它的主要功能集中在 DNS 解析增强上,增强部分有:

多上游服务器并发请求,对结果进行测速后,返回最佳结果;

address、ipset 域名匹配采用高效算法,查询匹配更加快速,即使是路由器设备也依然高效;

域名匹配支持忽略特定域名,可单独匹配 IPv4 和 IPv6,支持多样化定制;

针对广告屏蔽功能做增强,返回 SOA,屏蔽广告效果更佳;

IPv4、IPv6 双栈 IP 优选机制,在双网情况下,选择最快的网络通讯;

支持最新的 TLS 和 HTTPS 协议,提供安全的 DNS 查询能力;

ECS 支持,使查询结果更佳准确;

IP 黑名单和忽略 IP 机制,使域名查询更佳准确;

域名预查询,访问常用网站更加快速;

域名 TTL 可指定,使访问更快速;

高速缓存机制,使访问更快速;

异步日志,审计机制,在记录信息的同时不影响 DNS 查询性能;

域名组(group)机制,特定域名使用特定上游服务器组查询,避免隐私泄漏;

第二 DNS 支持自定义更多行为。

如何配置上游服务器最佳?

SmartDNS 有测速机制,在配置上游服务器时,建议配置多个上游 DNS 服务器,包含多个不同区域的服务器,但总数建议在 10 个左右。推荐搭配

运营商 DNS。

国内公共 DNS,如 119.29.29.29, 223.5.5.5。

国外公共 DNS,如 8.8.8.8, 8.8.4.4。

如何启用审计日志?

审计日志记录客户端请求的域名,记录信息包括,请求时间,请求 IP,请求域名,请求类型,如果要启用审计日志,在配置界面配置 audit-enable yes 启用,audit-size、 audit-file、audit-num 分别配置审计日志文件大小,审计日志文件路径,和审计日志文件个数。审计日志文件将会压缩存储以节省空间。

如何避免隐私泄漏?

默认情况下,SmartDNS 会将请求发送到所有配置的DNS服务器,若上游 DNS 服务器使用DNS,或记录日志,将会导致隐私泄漏。为避免隐私泄漏,请尽量:

配置使用可信的DNS服务器。

优先使用 TLS 查询。

设置上游 DNS 服务器组。

如何屏蔽广告?

SmartDNS 具备高性能域名匹配算法,通过域名方式过滤广告非常高效,如要屏蔽广告,只需要配置类似如下记录即可,如,屏蔽 *.ad.com,则配置:

address /ad.com/#

域名的使后缀模式,过滤 *.ad.com,# 表示返回 SOA,使屏蔽广告更加高效,如果要单独屏蔽 IPv4 或 IPv6, 在 # 后面增加数字,如 #4 表示对 IPv4 生效。若想忽略特定子域名的屏蔽,如忽略 pass.ad.com,可配置如下:

address /pass.ad.com/-

如何使用 DNS 查询分流?

某些情况下,需要将有些域名使用特定的 DNS 服务器来查询来做到 DNS 分流。比如

.home -> 192.168.1.1 # .home 结尾的域名发送到 192.168.1.1 解析.office -> 10.0.0.1# .office 结尾的域名发送到 10.0.0.1 解析

其他域名采用默认的模式解析。这种情况的分流配置如下:

# 配置上游,用 -group 指定组名,用 -exclude-default-group 将服务器从默认组中排除。server 192.168.1.1 -group home -exclude-default-groupserver 10.0.0.1 -group office -exclude-default-groupserver 8.8.8.8# 配置解析的域名nameserver /.home/homenameserver /.office/office

通过上述配置即可实现 DNS 解析分流,如果需要实现按请求端端口分流,可以配置第二 DNS 服务器,bind 配置增加 --group 参数指定分流名称。

bind :7053 -group officebind :8053 -group home

IPv4、IPv6 双栈 IP 优选功能如何使用?

目前 IPv6 已经开始普及,但 IPv6 网络在速度上,某些情况下还不如 IPv4。为在双栈网络下获得较好的体验,SmartDNS 提供来双栈IP优选机制,同一个域名,若 IPv4 的速度远快与 IPv6,那么 SmartDNS 就会阻止IPv6的解析、使用 IPv4 访问。可在配置文件中通过设置 dualstack-ip-selection yes 启用此功能,通过 dualstack-ip-selection-threshold [time] 来修改阈值。如果要完全禁止 IPv6 AAAA记录解析,可设置 force-AAAA-SOA yes。

如何提高缓存效率,加快访问速度?

SmartDNS 提供了域名缓存机制,对查询的域名,进行缓存,缓存时间符合 DNS TTL 规范。为提高缓存命中率,可采用如下措施:

适当增大缓存的记录数

通过 cache-size 来设置缓存记录数。

查询压力大的环境下,并且有内存大的机器的情况下,可适当调大。

适当设置最小 TTL 值

通过 rr-ttl-min 将最低 DNS TTL 时间设置为一个合理值,延长缓存时间。

建议是超时时间设置在 10~30 分钟,避免服务器域名变化时,查询到失效域名。

开启域名预获取功能

通过 prefetch-domain yes 来启用域名预先获取功能,提高查询命中率。

配合上述 TTL 超时时间,SmartDNS 将在域名 TTL 即将超时时,再次发送查询请求,并缓存查询结果供后续使用。频繁访问的域名将会持续缓存。此功能将在空闲时消耗更多的 CPU。

过期缓存服务功能

通过 serve-expired 来启用过期缓存服务功能,可提高缓存命中率的同时,降低CPU占用。

此功能会在TTL超时后,将返回 TTL=0 给客户端,并且同时再次发送查询请求,并缓存新的结果给后续使用。

第二 DNS 如何自定义更多行为?

第二 DNS 可以作为其他 DNS 服务器的上游,提供更多的查询行为,通过 bind 配置支持可以绑定多个端口,不同端口可设置不同的标志,实现不同的功能

最后:

后台回复:电报代理 即可获取 ,想要更快获取?

请加入电报粉丝群,后台回复:粉丝群

【腾讯云】爆款1核2G云服务器首年48元,还有iPad Pro、Bose耳机、京东卡等你来抽!

【腾讯云】境外1核2G服务器低至2折,半价续费券限量免费领取!

将连接复制到浏览器打开 

免责声明

网络并非法外之地,本频道分享的内容来自互联网和开源项目,本频道所有资源只可用于学术查询,论文查找,资源下载!

其他违法违规用途,搞事情的,违规后果自负