Docker建站(十)AdGuardHome:居家必备DNS服务器

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

<code style="margin-left:0">curl -sSL https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh</code>

具体参考官方文档。

注意:如果服务器53端口有占用,就无法使用此方法,或者配置很麻烦,例如我配置了Dnsmasq服务器,就选择了Docker部署。

2.2、命令行安装

执行:

Bash

<code style="margin-left:0">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</code>

注意,这里把443端口改为了8443端口,防止与其他服务冲突。

初始化时,请保持面板端口为3000。否则,请更改上面的端口映射。

3、初始化

按照老方法反代,访问网站即可。

保持默认设置即可。

4、DNS相关设置

参考下列图片:

特别说明:

  • 如果服务器在国内,可以直接使用腾讯云PublicDNS,目前免费,集成AdGuard、EasyList等知名屏蔽列表的广告屏蔽功能
  • 如果服务器在国内,优先使用服务器自带的DNS,一般是一个可用区内最快的DNS
  • 如果上小厂服务器,也可以使用阿里、腾讯或114的DNS,以上DNS都没有被污染

上游DNS服务器列表:

Text

<code style="margin-left:0">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</code>

Bootstrap服务器列表:

Text

<code style="margin-left:0">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</code>

如果保存时提示某服务器无法通过验证,则去掉该行即可。

5、去广告

设置屏蔽列表:

推荐:

Text

<code style="margin-left:0">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/</code>

*需要注意的是:/
广告屏蔽列表不是越多越好,选一个最全的(优先国内,国外的可能大部分是屏蔽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

<code style="margin-left:0">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;</code>

注意:
如果在后台发现客户端IP都是CDN IP,说明CDN传的XFF和XRI被这个反向代理覆盖了。去掉

Nginx

<code style="margin-left:0">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;</code>

即可获取客户端真实IP。

在宝塔防火墙-站点设置中,添加“受保护的URL”,

参数自定义,例如使用usernamepassword,则最后的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

未经允许不得转载:木盒主机 » Docker建站(十)AdGuardHome:居家必备DNS服务器

赞 (0)

相关推荐

    暂无内容!