作者:admin,发布日期:2020-07-26
阅读:21932;评论:2029
写在开头
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服务器的端口,我们可以自行设置。
点击下一步,设置管理面板用户名密码
然后继续点击下一步,按照提示打开仪表盘。
需要注意的是,如果没有修改上面的网页管理界面的端口,端口默认是80端口,当访问的时候就不能使用刚刚默认的3000端口了。
接着输入刚刚配置的用户名密码,点击登录进入管理面板,至此AdGuardHome安装完成,我们可以参考设置参考中的设置,把自己电脑DNS服务器配置成自己的服务器IP或者局域网设备的IP。
开启dns over https和dns over tls服务
点击仪表盘上方的设置-加密设置进入设置页面,我们需要在此处配置dns over https服务器的信息。
这两个服务都是基于tls的,所以我们需要有SSL证书,一般建议使用let's encrypt的免费证书,当然我们也可以自己生成。
服务器名称输入你的域名,dns over https是直接走http协议的,所以需要有一个解析到服务器的域名。
剩下部分按照提示输入即可,如果不需要哪个服务就把哪个服务的端口置空即可。
然后我们就得到了一个可以使用的doh地址,接着我们就可以使用dnscrypt客户端来连接。
使用dnscrypt来连接加密doh服务器
安装部分参考下面地址:
https://blog.craftyun.cn/post/210.html
首先我们需要一个网站来生成我们的doh服务器stamp串,生成的这串字母相当于服务器的连接信息。
打开上方网站,按照下图生成我们服务器的stamp串。
此处需要注意的是,dnscrypt-proxy这个程序是不支持dot的,博主我也是谷歌了好久才知道不能dot,但是可以doh。
生成完成后,我们修改dnscrypt-proxy配置文件dnscrypt-proxy.toml
在最底部按照上方注释的样例添加自己的服务器,此处ali-adguard就是我自己添加的自定义服务器。
添加完成后,我们把这个服务器设置成启用,这样我们就可以请求这个加密dns来实现去广告服务了。
找到上方的server_names,在数组中把服务器修改成刚刚添加的服务器,然后重启dnscrypt-proxy服务即可。
最后总结
本篇文章记录了AdGuardHome去广告dns服务的搭建以及加密dns(dot,doh)的配置,当然AdGuardHome的功能不止这些,大家还可以自己摸索,进行配置,相信大家每个人都可以搭建出自己的去广告dns。