前言:
如果你在百度或谷歌中搜索 “SmartDNS 广告过滤”相信你一定会看到很多基于 SmartDNS + AdguardHome 的方案实现广告过滤! 本篇文章仅通过 SmartDNS 这一个服务来实现广告过滤不会涉及相关 AdguardHome的相关内容;同时本文是基于openwrt系统的SmartDNS 服务介绍如何配置广告过滤的,其他系统基本也大同小异,可自行百度搜索。
说一下我个人的想法。 看了网上大部分的文章都是在介绍如何使用SmartDNS + AdGuardHome组合的方式来实现地址优选和广告过滤,但是我觉得同时在一个系统内运行三个dns服务着实有些冗余(dnsmasq、SmartDNS、AdGuardhome)。我想主要原因可能还是因为这两个服务各有所长且又都很实用吧。。。本质上来说两个服务都是DNS服务,但是侧重方向却不尽相同。SmartDNS侧重速度和防污染,而AdGuardhome 则侧重于广告过滤。虽然各有所长,但其实作为服务的开发人员这些功能彼此完全都可以相互借鉴这样就不会出现同时部署多个DNS 这样的解决方案了。。。当然这仅仅只是我个人的看法不能代表所有人。言归正传开始正题。。。
一、规则地址
1. ant-ad : https://anti-ad.net/anti-ad-for-smartdns.conf
2. neodevhost : https://raw.githubusercontent.com/neodevpro/neodevhost/master/smartdns.conf
其他还有很多,请自行搜索。。。
二、配置规则
openwrt 系统手动配置规则:
打开上面任意一个地址后 Ctrl + A 然后 Ctrl + C 接着打开你的 openwrt 系统找到 SmartDNS服务将内容粘贴到 域名地址 中然后点击“保存”按钮,至此完成过滤配置。
这种方式是最简单也是最笨的方式,比较适合懒人使用,缺点是的要经常手动更新。因为这个规则列表每天都会更新,所以为了过滤更准确你需要根据个人情况定时来手动更新。
命令行方式手动配置规则:
1. 切换到SmartDNS 服务的配置目录下(根据实际路径切换)
cd /etc/smartdns
2. 通过 wget 命令下载过滤规则文件
3. 修改SmartDNS 配置文件增加对规则文件的引用
4. 保存并重启SmartDNS 服务
/etc/init.d/smartdns restart
通过脚本定时更新:
## 切换到 SmartDNS 服务配置目录
cd /etc/smartdns
## 删除旧的规则文件
rm -rf anti-ad-for-smartdns.conf
## 下载新规则文件
wget https://anti-ad.net/anti-ad-for-smartdns.conf
## 重启 SmartDNS 服务 使规则生效
/etc/init.d/smartdns restart
1. 将以上脚本保存为 smartdns_update.sh 文件。
2. 设置执行权限:
chmod +x smartdns_update.sh
3. 设置定时任务
crontab -e
0 2 * * * /etc/init.d/smartdns restart
至此完成全部配置;