搭建并配置adguard home去广告dns服务器

平时上网冲浪总是会看到一大堆烦人的广告,虽然浏览器可以安装Adblock Plus浏览器插件来去除网站里的广告,但是比如电视机的广告、部分app里的广告,这种就不能用这种方式解决,所以用dns的方式禁止解析广告域名是比较好的解决方式,同时自己搭建内网的dns服务器也可以有效避免dns被劫持的问题(说的就是某运营商把GitHub解析到127.0.0.1),同时还能做到保护个人隐私,这里就用威联通配合docker/openwrt来进行部署。

请注意:自行搭建dns服务器仅限在内网中使用,如果把相关服务暴露在公网,可能违反相关法律法规,同时AdGuard Home并不能拦截YouTube这种广告,而且现在部分app都使用了自己的doh(DNS over HTTPS),无法通过这种方式达到去广告的目的,除非劫持53端口,这个有机会再出教程吧。

一、安装docker

此教程不再赘述,需要的请查看往期文章《如何搭建属于自己的chatgpt

二、部署AdGuard Home

这里docker配置部分不做详细教程,需要的请查看往期文章《docker详细教程二》


docker run --name adguardhome\
    --restart unless-stopped\
    -v /my/own/workdir:/opt/adguardhome/work\
    -v /my/own/confdir:/opt/adguardhome/conf\
    -p 53:53/tcp -p 53:53/udp\
    -p 67:67/udp -p 68:68/udp\
    -p 80:80/tcp -p 443:443/tcp -p 443:443/udp -p 3000:3000/tcp\
    -p 853:853/tcp\
    -p 784:784/udp -p 853:853/udp -p 8853:8853/udp\
    -p 5443:5443/tcp -p 5443:5443/udp\
    -d adguard/adguardhome

/my/own/workdir等换成自己主机下的文件夹路径即可。

威联通Container Station部署

网络配置这里我选择了host模式

host模式下网络性能会好一点的(没啥用),主要是可以不用配置那么多端口,而且除非使用doh(占用443),不然极大概率是不会和其他服务冲突,所以这里我选择了host模式,也可以选择nat模式或者bridge模式,详细请查看往期文章《docker详细教程二》

提醒:如果使用nat模式,请务必转发53:53 udp端口以及3000:3000端口,其他的端口如果没有进阶需求可以不转发

映射文件夹

这里只要映射/opt/adguardhome/work/opt/adguardhome/conf两个文件夹即可,勾选写入权限,然后创建。

openwrt部署

安装AdGuard Home插件,勾选启用,端口改成3000,更新核心版本,53重定向选择作为dnsmasq的上游服务器,保存应用即可。

附上插件GitHub:
https://github.com/rufengsuixing/luci-app-adguardhome

三、配置dns以及去广告

打开ip+3000端口号进入到adguard home管理面板,开始配置。

端口需要改成3000以免和80端口冲突,其他默认即可

再配置账号密码

然后一路下一步,完成配置进到仪表盘

转到设置,添加公共dns比如8.8.8.8、114.114.114.114,选择并行请求。

转到过滤器-dns拦截列表,自行添加想要的规则

一般情况自带的这两个规则已经足够用了,如果还需要其他的规则,可以自行查找,这里推荐anti-AD的规则:https://anti-ad.net/easylist.txt
有需要的请自行前往github查看:
https://github.com/privacy-protection-tools/anti-AD

添加规则也很简单,点击添加阻止列表

可以从列表中添加(官方的列表),这里我使用anti-AD的规则,选择添加一个自定义列表

保存之后检查更新一下即可

注意:过滤规则越多dns性能会越慢,表现为解析时间变长(肉眼来看就是加载网页要等久一点),如果规则过多导致速度变慢建议禁用一些规则

四、设备更改dns(openwrt不用看)

这里有两种方法,一种是路由器上更改dns,进入到路由器后台,更改dns服务器(adguard home所在的ip)即可,此方法一劳永逸,推荐此方法。

或者单个设备更改dns,windows进入网络连接配置dns,手机进入wifi配置dns。

提醒:首选dns服务器填写adguard home的ip,同时请填写备用dns服务器,避免adguard home下线(nas临时重启等情况)后导致的断网(如果adguard home不下线,是不会用到备用dns的也就不会影响到拦截效果),配置好dns后请重启设备刷新dns

五、检查拦截效果

进入到adguard home的仪表盘查看拦截效果

这里做完优化后平均处理时间只有6ms,具体怎么优化,关注我下一期进阶教程

可以测试一下是否真的被拦截,以谷歌广告pagead2.googlesyndication.com为例

至此基础教程已经结束,后续进阶教程(优化,dns重写等)请关注下一期

ps:以前某个绿色软件pyq也是可以屏蔽广告的,但是现在app自带doh不行了

THE END