搭建AdGuard Home自定义dns,实现全设备拦截广告的目的

新酱
149
文章
37
评论
2020年7月16日15:30:36 评论 715 1449字阅读4分49秒

今天突然看到原来大名鼎鼎的AdGuard开源了一个AdGuard Home,原理就是在dns查询的层面就拦截了广告域名,达到不加载广告就拦截广告的目的,而且因为是dns,所以只需要给设备配置dns就可以,简单方便。

由于是dns,所以大家尽量采用国内的服务器来搭建,因为我们这个还需要配置上游dns,上游dns查询的结果是根据服务器的位置来的,所以如果你用国外的服务器,要查询的网站使用的全球cdn,那么查询到的就是国外cdn的地址,这无形中会减慢网页加载的速度。

亲身实践,不要买腾讯云,腾讯云会检测你是否开放了53端口(dns端口),如果开放了并且有流量通过则会发出警告。

搭建AdGuard Home自定义dns,实现全设备拦截广告的目的
下面我们开始操作

项目github主页:https://github.com/AdguardTeam/AdGuardHome

最新版的AdGuard Home文件可以在https://github.com/AdguardTeam/AdGuardHome/releases下载,下载的时候根据自己的系统和cpu架构下载。

我这里以Centos7演示

解压完之后你需要开通3000、53、以及80端口,如果你的服务器已经有网站占了80端口就换成其他自定义的端口。

注意:宝塔面板开的端口经测试,只是开了tcp的端口,而udp则没有开,dns查询默认使用udp,所以53端口需要命令开通udp。

ok,开通了端口之后在AdGuardHome目录下将AdGuardHome注册成服务

之后你就可以用以下命令控制AdGuardHome

运行AdGuardHome后会提示打开http://ip:3000来初始化AdGuardHome

只需要根据自己需要修改后台80端口,其他一路默认。

如果你步骤都是对的,那么你应该可以打开AdGuardHome的后台了。

搭建AdGuard Home自定义dns,实现全设备拦截广告的目的

点击设置、DNS设置,这里可以设置上游dns,也就是你的服务器要请求的公共dns,你可以填写诸如腾讯、阿里、114等公共dns地址

dns服务设定中限制修改为0,并且禁用ipv6

然后点击过滤器,dns封锁清单,里面内置了AdGuard的基础拦截规则,但在中国可能水土不服,所以我们需要添加自定义规则。下面是我推荐的3个规则,至少可以拦截99%的广告。点击添加阻止列表添加它们。

1、adgk去广告规则:https://gitee.com/banbendalao/adguard/raw/master/ADgk.txt

2、乘风规则:https://raw.githubusercontent.com/xinggsf/Adblock-Plus-Rule/master/ABP-FX.txt

3、乘风规则2:https://gitee.com/xinggsf/Adblock-Rule/raw/master/rule.txt

最后就是设置你自己的dns,AdGuard Home很贴心的给我们很多设备的设置方式。

搭建AdGuard Home自定义dns,实现全设备拦截广告的目的

下面就是测试dns是否生效,我这里以windows为例,在设置好dns后打开cmd

如果能够成功查询到baidu的ip,再返回AdGuard Home后台刷新状态就可以看到dns查询+1了。

 

  • 版权声明: 发表于 2020年7月16日15:30:36
  • 转载注明:https://www.xiaorenjc.net/ziyuanfenxiang/1421

您必须才能发表评论!