0、为什么需要AdGuard
身在国内,国产App都会有奇怪的开屏广告,甚至自己买回家的电视,都会有无法关闭的开机广告,使用体验堪比买了一个电视的节目播放权。
使用自动跳过软件,例如知名的李跳跳、轻启动、自动跳过,属于治标不治本;而自建DNS服务器,从根源上屏蔽广告服务器,才是最佳解决方案。
注意:
AdGuard Home只适合家庭使用,不适合部署在企业服务器上。建议使用家里的NAS/树莓派/OpenWrt路由器部署,用国内云服务器部署请勿开启公共访问,需开启IP白名单,否则会在1工作日内被云厂商警告!免责声明:
本教程只简单分享搭建方法,参考本教程搭建的DNS服务器,用于违法用途导致的任何后果,本站概不负责。
1、关于
AdGuard Home 是一款全网广告拦截与反跟踪软件。
在您将其安装完毕后,它将保护您所有家用设备,同时您不再需要安装任何客户端软件。
随着物联网与连接设备的兴起,掌控您自己的整个网络环境变得越来越重要。
——AdGuard Home官网
根据V2EX等站的网友测试,AdGuard Home可以过滤包括手机开屏广告、应用内广告、电视开机广告在内的几乎所有广告,使用体验非常棒。
然而,由于特殊原因大家恐怕并不能享受这么好的服务,原因下文再说
2、安装
2.1、非Docker安装
不想用Docker的可以使用此方法。
GitHub项目地址:
https://github.com/AdguardTeam/AdGuardHome
一键脚本执行:
Bash
curl -sSL https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh
具体参考官方文档。
注意:如果服务器53端口有占用,就无法使用此方法,或者配置很麻烦,例如我配置了Dnsmasq服务器,就选择了Docker部署。
2.2、命令行安装
执行:
Bash
docker run --name AdGuardHome \
--restart unless-stopped \
-v ~/adguard/work:/opt/adguardhome/work \
-v ~/adguard/conf:/opt/adguardhome/conf \
-p 8053:53/tcp \
-p 8053:53/udp \
-p 8443:443/tcp \
-p 8443:443/udp \
-p 8080:3000/tcp \
-p 853:853/tcp \
-p 784:784/udp \
-p 853:853/udp\
-p 5443:5443/tcp \
-p 5443:5443/udp \
-d adguard/adguardhome
注意,这里把443端口改为了8443端口,防止与其他服务冲突。
初始化时,请保持面板端口为3000。否则,请更改上面的端口映射。
3、初始化
按照老方法反代,访问网站即可。
保持默认设置即可。
4、DNS相关设置
参考下列图片:
特别说明:
- 如果服务器在国内,可以直接使用腾讯云PublicDNS,目前免费,集成AdGuard、EasyList等知名屏蔽列表的广告屏蔽功能
- 如果服务器在国内,优先使用服务器自带的DNS,一般是一个可用区内最快的DNS
- 如果上小厂服务器,也可以使用阿里、腾讯或114的DNS,以上DNS都没有被污染
上游DNS服务器列表:
Text
119.29.29.29
1.2.4.8
101.226.4.6
tcp://114.114.114.114
tcp://114.114.115.115
tcp://223.5.5.5
tcp://223.6.6.6
tcp://8.8.4.4
tcp://202.14.67.4
tcp://202.14.67.14
tcp://202.130.97.65
tcp://202.130.97.66
tcp://168.95.192.1
https://1.1.1.1/dns-query
https://1.0.0.1/dns-query
tls://8.8.8.8
tls://8.8.4.4
tls://dns.google:853
Bootstrap服务器列表:
Text
219.141.136.10
219.141.140.10
202.96.199.133
119.29.29.29
223.5.5.5
180.76.76.76
8.8.8.8
8.8.4.4
208.67.222.222
如果保存时提示某服务器无法通过验证,则去掉该行即可。
5、去广告
设置屏蔽列表:
推荐:
Text
EasyList
https://raw.githubusercontent.com/privacy-protection-tools/anti-AD/master/anti-ad-easylist.txt
AdAway
https://adaway.org/hosts.txt
乘风视频
https://gitee.com/xinggsf/Adblock-Rule/raw/master/mv.txt
乘风广告
https://gitee.com/xinggsf/Adblock-Rule/raw/master/rule.txt
My AdFilters
https://gitee.com/halflife/list/raw/master/ad.txt
CJX's uBlock list
https://gitee.com/cjx82630/cjxlist/raw/master/cjx-ublock.txt
EasyPrivacy
https://easylist-downloads.adblockplus.org/easyprivacy.txt
I don't care about cookies
https://www.i-dont-care-about-cookies.eu/abp/
*需要注意的是:/
广告屏蔽列表不是越多越好,选一个最全的(优先国内,国外的可能大部分是屏蔽Google,YouTube等广告)即可,太多规则会拖慢DNS解析速度。
6、效果
6.1、客户端配置
路由器:
目前,无法在路由器上配置AdGuardHome的DoH/DoT,实现全家共享去广告。但是可以使用DNSPod的PublicDNS,支持TCP/UDP的DNS。
安卓:
安卓设备原生支持DoT,在设置中搜索加密DNS即可。
除此之外,还可以安装AdGuard软件体验DoH:
AdGuard App
https://adguard.com/adguard-android/overview.html
官方自带了很多安装了AdGuard的服务器,默认的几个,中国大陆都可以访问。
无论是否Root,都不影响使用。
Windows:
在设置中找到DNS设置:
警告:
DoT使用默认端口853,极其容易被主动探测,改端口的话大部分设备不支持,因此建议不要使用DoT,亲测DoH使用基本延迟无感。
6.2、反向代理
使用DoH仍然容易被警告,因此可以使用Nginx反向代理+宝塔防火墙修改DoH路径,并实现Access Token鉴权。
反向代理配置:
Nginx
location /dns-over-https-private-entrance/
#设置入口,较长一些
proxy_pass http://127.0.0.1:8443/dns-query/;
#DoH默认路径,端口改成你设置的
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
注意:
如果在后台发现客户端IP都是CDN IP,说明CDN传的XFF和XRI被这个反向代理覆盖了。去掉
Nginx
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
即可获取客户端真实IP。
在宝塔防火墙-站点设置中,添加“受保护的URL”,
参数自定义,例如使用username
和password
,则最后的DoH路径为:
https://域名/入口/?username=password
如果不带参数,则会被拦截,多拦截几次直接被宝塔防火墙封IP,有效防止主动探测,防止被蹭或被墙。
6.3、体验
最后,安卓可以安装AdGuard软件体验DoH:
AdGuard App
https://adguard.com/adguard-android/overview.html
无论是否Root,都不影响使用哦~
Docker建站(十)AdGuardHome:居家必备DNS服务器
https://blog.tsinbei.com/archives/780/
Author
Hsukqi Lee
Posted on
2022-08-29
Licensed under
CC BY-NC-ND 4.0
未经允许不得转载:便宜VPS » Docker建站(十)AdGuardHome:居家必备DNS服务器