基于 unbound 递归 DNS 服务的广告屏蔽(0)

unbound 的好处就是递归,也就是说,所有的 DNS 请求,都是以 unbound 部署点的 IP 直接从 DNS 根服务器上请求,直到请求到合适的 IP 为止,当然中间不排除被掉包。如果我们走 DNSSEC 的话,就会好很多(回头再说 DNSSEC)。

网络上有篇文章关于 FreeBSD 上跑 unbound + adblock 的脚本,可是我们看了下这个脚本,里面其实使用的是陈旧的4年之前的一个老外的黑名单列表。脚本的核心就是根据那个列表用 awk 转换成 unbound 格式的。 其实也是用 awk 的,我们自己写的就是一行代码:

awk '!/^#/ && !/^$/ {print "local-zone:","\"" $1 "\"","static"}' ${BL} > adb.conf

好吧,如果源清单都是陈旧的,没有在更新的,广告屏蔽也就失去了意义。

实际上以上写出来的 .conf 文件不适合 unbound 1.6.x 版本,低版本的 unbound 每个域名需要写两行,这里有个参考的文章。但是使用的都是那个旧的黑名单。

为什么要屏蔽广告?

看到一篇不错的英文文章《Best Ad Blockers》我们先看下文末的结论:

除了安全和隐私以外,屏蔽广告能让网站加载更快,节约带宽(特别是移动设备上),更好网上冲浪体验-不会被广告打扰。

文末有很长的点评,我们有时间也深入细化本文,把各种屏蔽技术都评论一下。

另外一篇《五个最好的 DNS 服务