作者:admin,发布日期:2020-07-26
阅读:12087;评论:4

Snipaste_2020-07-26_16-34-06.png

写在开头

AdGuard Home 项目 是著名广告拦截器 AdGuard 里 DNS Server 的一个开源版本。该项目通过开启dns服务器让用户连接,从而识别用户访问的域名,对其中的广告域名进行拦截(返回空记录或者其他指定的记录)。

这样做的好处在于,节省了在浏览器上安装去广告插件和在手机、电脑等设备上安装去广告应用的步骤,所有设备只要使用了 AdGuard Home 的 DNS 就可以自动拦截广告,同时,AdGuardHome支持加密DNS,我们可以在本地安装dnscrypt客户端来连接AdGuardHome的dns over https服务。

项目地址

该项目源代码开源存储于github

https://github.com/AdguardTeam/AdGuardHome

搭建方法

首先我们要有一台可以安装软件的机器,当然你也可以局域网搭建,这样的话局域网设备可以直接用标准的53dns端口来连接AdGuardHome。

2021-04-08更新,可以使用官方的安装脚本安装

curl -sSL https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh

或者通过wget下载程序主文件并解压,作者此处使用的Linux发行版为centos7

wget https://static.adguard.com/adguardhome/release/AdGuardHome_linux_amd64.tar.gz
tar xvf AdGuardHome_linux_amd64.tar.gz

解压完成后,进入解压出来的目录。

cd AdGuardHome

接着使用主程序来自动创建服务文件,这样我们就可以让此程序可以开机启动,并且在错误崩溃时自动重启。

需要注意的是,如果你不是root用户,就一定要按照下面命令行这样,加上sudo安装服务。

sudo ./AdGuardHome -s install

安装完成后,我们就可以用其自带的命令来管理服务。

AdGuardHome -s uninstall - uninstalls the AdGuard Home service.

AdGuardHome -s start - starts the service.

AdGuardHome -s stop - stops the service.

AdGuardHome -s restart - restarts the service.

AdGuardHome -s status - shows the current service status.

当然也可以使用systemd来管理,都是一样的

systemctl start AdGuardHome.service # 启动服务
systemctl restart AdGuardHome.service # 重启服务
systemctl stop AdGuardHome.service # 停止服务

这里部署完成之后,我们就可以进入网页面板来管理和配置AdGuardHome了。

第一次系统默认会监听3000端口,我们进入IP:3000端口,进行初始化配置。

在此处可以设置管理界面的端口和标准DNS服务器的端口,我们可以自行设置。

Snipaste_2020-07-26_16-40-28.png

点击下一步,设置管理面板用户名密码

Snipaste_2020-07-26_16-41-29.png

然后继续点击下一步,按照提示打开仪表盘。

需要注意的是,如果没有修改上面的网页管理界面的端口,端口默认是80端口,当访问的时候就不能使用刚刚默认的3000端口了。

Snipaste_2020-07-26_16-43-10.png

接着输入刚刚配置的用户名密码,点击登录进入管理面板,至此AdGuardHome安装完成,我们可以参考设置参考中的设置,把自己电脑DNS服务器配置成自己的服务器IP或者局域网设备的IP。

Snipaste_2020-07-26_16-44-21.png

开启dns over https和dns over tls服务

点击仪表盘上方的设置-加密设置进入设置页面,我们需要在此处配置dns over https服务器的信息。

Snipaste_2020-07-26_16-50-42.png

这两个服务都是基于tls的,所以我们需要有SSL证书,一般建议使用let's encrypt的免费证书,当然我们也可以自己生成。

服务器名称输入你的域名,dns over https是直接走http协议的,所以需要有一个解析到服务器的域名。

剩下部分按照提示输入即可,如果不需要哪个服务就把哪个服务的端口置空即可。

然后我们就得到了一个可以使用的doh地址,接着我们就可以使用dnscrypt客户端来连接。

使用dnscrypt来连接加密doh服务器

安装部分参考下面地址:

https://blog.craftyun.cn/post/210.html


首先我们需要一个网站来生成我们的doh服务器stamp串,生成的这串字母相当于服务器的连接信息。

https://dnscrypt.info/stamps/

打开上方网站,按照下图生成我们服务器的stamp串。

Snipaste_2020-07-26_16-57-57.png

此处需要注意的是,dnscrypt-proxy这个程序是不支持dot的,博主我也是谷歌了好久才知道不能dot,但是可以doh。

生成完成后,我们修改dnscrypt-proxy配置文件dnscrypt-proxy.toml

Snipaste_2020-07-26_16-59-30.png

在最底部按照上方注释的样例添加自己的服务器,此处ali-adguard就是我自己添加的自定义服务器。

添加完成后,我们把这个服务器设置成启用,这样我们就可以请求这个加密dns来实现去广告服务了。

Snipaste_2020-07-26_17-00-53.png

找到上方的server_names,在数组中把服务器修改成刚刚添加的服务器,然后重启dnscrypt-proxy服务即可。

最后总结

本篇文章记录了AdGuardHome去广告dns服务的搭建以及加密dns(dot,doh)的配置,当然AdGuardHome的功能不止这些,大家还可以自己摸索,进行配置,相信大家每个人都可以搭建出自己的去广告dns。

你可能感兴趣的文章

评论区

已有4位网友发表了看法:

1L yuho  2021-10-29 14:04:13 回复
大佬,请问一下dnscrypt-proxy跟adguardhome都是用127.0.0.1:53这个地址,两个怎么一起用。。
1L admin  2021-10-29 18:22:55 回复
@yuho 一个是装在服务器上的,一个是装在本地的,如果说都装在本地就没必要dnscrypt-proxy了
2L yuhu  2021-11-07 13:49:28 回复
ok了大佬sama,我想问下最后本机设置的是adguardhome的地址还是dnscrypt-proxy(127.0.0.1)的地址
2L admin  2021-11-10 17:03:05 回复
@yuhu 127.0.0.1

发表评论

必填

选填

选填

必填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。