AdGuardHome是什么
AdGuardHome 是一款全网广告拦截与反跟踪软件。它是一个开源的 DNS 服务器,部署方便、UI 友好易用,有着防污染、防跟踪、防篡改的能力,其次才是它的去广告、反跟踪功能,是通过重定向 DNS 解析记录实现的。
AdGuard Home 去广告效果怎样?
既然有去广告功能,自然还是要讨论它的去广告效果的。不过在这里博主要给小伙伴们直接泼一盆冷水了,广告的种类和形态是多样的,不要指望一个 DNS 能把所有的广告消灭干净了。
对于 PC 端的网页广告效果最好的有且仅有浏览器插件,如果配合 AdGuard Home 在广告到达浏览器之前进行阻挡一些会给设备节省不少的计算开销,理论上来说会起到一定的省电效果,但估计也没人会在意。如果只是单纯的使用 AdGuard Home 并没有什么效果,少量的被拦截的广告会在页面上留下一个空白区域。
对于手机上的广告最直观的感受是手机收到的推送广告明显减少了,然后是部分 App 的开屏广告消失了,还是能起到一定作用的。对于 ADUI 这样的广告级魔改安卓系统效果尤其明显
AdGuard Home安装教程
1、开放端口
`53`:DNS 端口。即其他设备访问 AdGuard Home 进行 DNS 解析的默认端口。因为部分系统不支持自定义 DNS 端口,所以不建议自定义。部署前务必要查看是否有其它程序占用。
`67, 68`: DHCP 端口。除非想代替你路由上的 DHCP 服务器,否则用不到。
`80`: 管理页面默认 HTTP 端口。可忽略,在初始化页面设置管理端口为 `3000` 端口即可。
`443`:HTTPS 和 DoH 端口。本地内网环境不需要。
`853`:DoT 端口。不使用相关功能可忽略。
`3000`:初始化设置端口。除非通过配置文件去设置,否则必须开启。
2、自动安装(Linux和Mac)
在终端中运行以下命令:
curl -sSL https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh
如果提示 curl: command not found ,那是因为没装 Curl ubuntu/debian 系统安装 Curl 方法:
apt-get install curl -y
centos 系统安装 Curl 方法:
yum install curl -y
3、手动安装(Linux x64)
在终端中运行以下命令:
wget https://static.adguard.com/adguardhome/release/AdGuardHome_linux_amd64.tar.gz
tar xvf AdGuardHome_linux_amd64.tar.gz
进入解压目录执行以下命令安装
cd AdGuardHome
./AdGuardHome -s install
4、Windows安装
前往 AdGuard Home 官网下载安装包。
下载二进制文件
使用浏览器 / 下载工具下载:https://static.adguard.com/adguardhome/edge/AdGuardHome_windows_amd64.zip
解压压缩包得到 AdGuardHome.exe
文件
将 AdGuardHome.exe
移动到 C:\Program Files\AdGuard_Home
文件夹中
以管理员身份打开命令提示符,执行以下命令
cd "C:\Program Files\AdGuard_Home"
.\AdGuardHome.exe --service install
当提示 AdGuard Home is successfully installed and will automatically start on boot
. 即表示 AdGuard Home 在当前系统上安装成功。在命令行中会显示管理后台的地址与端口,默认为 http://IP:3000
5、Docker安装(Linux x64)
(1)Bridge 网络模式
docker run -d \
--name adguardhome \
-v $PWD/adguardhome/work:/opt/adguardhome/work \
-v $PWD/adguardhome/conf:/opt/adguardhome/conf \
-p 53:53/tcp \
-p 53:53/udp \
-p 3000:3000/tcp \
adguard/adguardhome
(2)Host 网络模式
Host 网络模式直接使用宿主机的网络,没有网络隔离,不需要考虑容器端口的映射,在容器启动后可以自由调整被占用的端口。适合在本机使用 (localhost),或者直通外网的设备对外开放服务,就比如 VPS 、主路由。
docker run -d \
--name adguardhome \
--restart unless-stopped \
--log-opt max-size=1m \
--network host \
-v $PWD/adguardhome/work:/opt/adguardhome/work \
-v $PWD/adguardhome/conf:/opt/adguardhome/conf \
adguard/adguardhome
AdGuard Home设置教程
1、初始化设置
使用网页浏览器访问 IP + 3000 端口即可进入到 AdGuard Home 的初始化界面,比如 IP 是 10.0.0.53,那么就访问 http://10.0.0.53:3000
接着是监听接口(网卡)和端口设置,根据不同的网络模式和实际情况需要作出不同的修改
然后是设置管理用户名和密码,后面都是直接下一步:
完事之后输入用户名和密码登录,就来到了仪表盘页面。
至此 AdGuard Home 就部署完成了。
2、高级配置
(1)常规设置
过滤器更新间隔
:DNS 过滤清单默认更新间隔,一般为 3 天 - 7 天使用 AdGuard 「浏览安全」网页服务
:作用与 Chrome 网页安全性检查类似,开启后,当用户访问存在潜在威胁的网站时,AdGuard 会主动拦截并弹出提示使用 AdGuard 「家长控制」 服务
:如果家中有尚未成年的孩子,建议开启,避免访问不良网站强制安全搜索
:隐藏 Bing、Google、Yandex、YouTube 网站上 NSFW 等不适宜的内容查询记录保留时间
:AdGuard Home 服务端采用 Sqlite 文件数据库存储日志,长时间保留可能会降低运行速度,同时占用大量的储存空间,家庭用户一般保留 24 小时 - 7 天即可统计数据保留时间
:用于仪表盘的数据展示,一般保留 24 小时 - 7 天即可
(2)DNS 设置
上游 DNS 服务器
:AdGuard Home 的上游 DNS 服务器,可参考下方推荐列表,一般保留 1 - 2 个即可。AdGuard Home 除了可以作为广告过滤网关,如果设置了纯净 DNS 后,还可以避免运营商的 DNS 劫持
tls://dot.360.cn
https://doh.360.cn/dns-query
tls://dns.pub
https://dns.pub/dns-query
tls://dns.alidns.com
https://dns.alidns.com/dns-query
tls://dns.ipv6dns.com
https://dns.ipv6dns.com/dns-query
BootStrap DNS 服务器地址
:作为 DoH / DoT DNS 的前置 DNS 解析器,可参考下方推荐列表
119.29.29.29
223.5.5.5
180.76.76.76
2400:3200::1
2400:da00::6666
240C::6666
- 查询方式、速度限制、EDNS、DNSSEC、拦截模式、DNS 缓存设置、访问设置可根据需要进行调整,一般保持默认设置即可
速度限制
:0使用 EDNS
:已知前面提及的上游 DNS 服务器都是支持 EDNS 技术的,它有助于获取到更合适的 CDN 节点,建议勾选。使用 DNSSEC
: 用于效验 DNS 记录的签名,防止 DNS 缓存被投毒,建议勾选。勾选后会在日志页面请求列显示小绿锁图标。禁用 IPv6
:丢弃 IPv6 的 DNS 查询。在本地网络和网站都支持 IPv6 会优先使用 IPv6 去访问网站,但目前 IPv6 的建设还处于初级阶段,大多数地区的 IPv6 网络体验都一般。还有一些代理软件对 IPv6 支持不佳,开启后可能会影响国际互联网的访问。如果对此没有特殊需求,那么直勾选即可,这样既不影响 BT 软件连接 IPv6 网络,又可以优先使用 IPv4 来上网。如果只有 IPv4 ,那么是否勾选没有区别DNS 缓存配置
,目前多数域名的 TTL 值普遍在 300 以内,所以给出以下设置参考值:覆盖最小 TTL 值:600;覆盖最大 TTL 值:3600
(3) DNS 封锁清单
为了更好地发挥 AdGuard Home 去广告的功能,仅依靠默认的过滤规则是不够的,但也不宜过多,过多的过滤规则会影响解析的速度,各位可以根据需要添加过滤规则。
halflife
https://raw.githubusercontent.com/o0HalfLife0o/list/master/ad.txt
anti-AD
https://anti-ad.net/easylist.txt
neoHosts
https://cdn.jsdelivr.net/gh/neoFelhz/neohosts@gh-pages/full/hosts.txt
大圣净化 - 针对国内视频网站
https://raw.githubusercontent.com/jdlingyu/ad-wars/master/hosts
adgk手机去广告规则
https://raw.githubusercontent.com/banbendalao/ADgk/master/ADgk.txt
广告终结者
http://sub.adtchrome.com/adt-chinalist-easylist.txt
Adbyby
https://raw.githubusercontent.com/adbyby/xwhyc-rules/master/lazy.txt
EasyList China+EasyList
https://easylist-downloads.adblockplus.org/easylistchina+easylist.txt
EasyPrivacy
https://easylist-downloads.adblockplus.org/easyprivacy.txt
(4) DNS允许清单
anti-ad白名单
https://raw.githubusercontent.com/privacy-protection-tools/dead-horse/master/anti-ad-white-list.txt
filter_whitelist
https://raw.githubusercontent.com/hl2guide/Filterlist-for-AdGuard/master/filter_whitelist.txt
LWJ's white list
https://raw.githubusercontent.com/liwenjie119/adg-rules/master/white.txt
DNS允许白名单
https://raw.githubusercontent.com/ChengJi-e/AFDNS/master/QD.txt
AdGuard Home 所有的配置参数都保存在一个名为 AdGuardHome.yaml 的配置文件中,这个配置文件默认路径通常为 AdGuard Home 二进制文件 AdGuardHome 所在的目录。
这里我们只需调整以下两个参数,就是可以明显提升 AdGuard Home 的 QPS 能力。
ratelimit
: DDoS保护,客户端每秒接收的数据包数。默认值是 20,建议禁用该参数(将值改为 0)。blocked_response_ttl
: 缓存时间,默认值是 10,建议设置为 60 。
(5)开启DoH/DoT
设置一个DNS的解析域名并申请SSL证书,进入加密设置,勾选启用加密,输入自己刚刚设置好的域名,HTTPS端口填写没有被占用的端口,粘贴好SSL证书和秘钥后保存配置即大功告成,宝塔面板反代http://ip:8080并开启SSL。
在设备上使用 AdGuard Home DNS
最后你可以在 AdGuard Home 的设置指导页面找到相应系统的 DNS 设置方法,先不要着急在路由器上使用,建议先设置电脑或手机,通过访问一些网站来测试是否能正常解析。正常的情况下在仪表盘界面会有统计信息,在查询日志界面你会看到解析的详细记录信息。
完成 AdGuard Home 的设置后,便可将 AdGuard Home 的 DNS 地址部署到局域网设备上。
1、更改路由器 DNS 地址
不同品牌路由器修改的方法各有差异,具体步骤可参照说明书或网上的教程(路由器型号 + 更改 DNS),下方以 Redmi AC2100 路由器为例。
打开并登录路由器的后台管理页面。
在局域网设置中找到 DNS 设置,将首选 DNS 服务器更改为 AdGuard Home 的 DNS 地址,可设置为其它的 DNS 服务商,避免因 AdGuard Home 服务器宕机而导致局域网无法访问互联网。更改完成后点击保存即可。在路由器更改 DNS 后,局域网内的所有设备的 DNS 解析都会通过 AdGuard Home DNS 完成,实现过滤广告与反隐私跟踪。
2、更改手机 DNS 地址
- 进入「设定 - 网络和互联网 - Wi-Fi」,点击当前已连接网络的一旁的设置按钮,在 Wi-Fi 详情信息页面点击「编辑」按钮
- 找到「IP 设定」
- 分别输入该设备的 IP、网关与 AdGuard Home 服务器地址
3、 iOS 设备
- 进入「设置 - 无线局域网」,点击当前已连接网络的名称
- 在 Wi-Fi 详情信息页面找到「配置 DNS」
- 切换为手动设置,并输入 AdGuard Home 服务器地址
4、更改电脑 DNS 地址
- 打开「Windows 设置 - 网络和 Internet」,点击「更改适配器选项」
- 选中有线 / 无线网卡,点击工具栏「更改此连接的设置」
- 找到「Internet 协议版本 4」,点击「属性」按钮
- 填写 DNS 服务器,点击「编辑」按钮
常见问题
1、端口冲突
在 Linux 设备上运行 AdGuard Home,通常会出现 53(本地 DNS 服务器)、68(DHCP 客户端)、80(Http)、443(Https) 端口冲突的问题,可以通过netstat -tunlp | grep
端口号 查询占用进程。有两种解决方案:使用不同端口、停用冲突进程。
如果是通过 Docker 方式运行 AdGuard Home,出现 listen udp 0.0.0.0:53: bind: address already in use 的提示,需要手动处理,方法如下:
#停止 DNSStubListener
systemctl stop systemd-resolved
#创建文件夹(如果不存在)
mkdir /etc/systemd/resolved.conf.d/
#使用 Nano 创建配置文件2021-04-29 16:16:00 星期四
nano /etc/systemd/resolved.conf.d/adguardhome.conf
在编辑器中粘贴以下内容:
[Resolve]
DNS=127.0.0.1
DNSStubListener=no
保存后执行以下命令。
#创建备份
sudo mv /etc/resolv.conf /etc/resolv.conf.backup
#将 /etc/resolv.conf 链接至 /run/systemd/resolve/resolv.conf
ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
#重启 DNSStubListener
systemctl restart systemd-resolved
完成后使用 netstat -tunlp | grep 53
命令检查是否依旧有进程占用 53 端口,如无冲突,重启 AdGuard Home 容器即可。
2、平均处理时间过长?
以下几个因素会使 AdGuard Home 的处理时间过长:
- 本地到上游DNS的速度:如果本地运营商的 DNS 没有 DNS 劫持、投毒的问题,建议使用运营商 DNS + 公共 DNS 的方案,DNS 速度可以通过 Ping 值比较。并在 AdGuard Home 中选择以「并行请求」的方式处理 DNS 请求
- 浏览安全、家庭控制与强制安全搜索服务:以上三个功能,在 DNS 请求时不会经过 DNS 缓存,直接向上游 DNS 服务器请求,从而减慢 AdGuard Home 的处理速度
- IPv6:如果使用的宽带、校园网不支持 IPv6,可以禁用解析 IPv6,提高响应速度
- 过滤规则:过多的过滤规则会影响响应速度,宁缺毋滥,选择最合适自己的规则,一般保留 3 - 4 个广告过滤规则即可。
- 统计周期: 在完成以上优化后,发现平均处理时间并没有太大改变,使用体验上也并不慢,有可能是因为统计周期过长,将优化前的结果计入,导致优化前后的结果无太大差异。不妨将仪表盘的统计周期缩短为 24 小时再看看。
- 完成以上步骤后使用体验比没有使用 AdGuard Home 还要糟糕,问题有亿点严重了。这个时候需要查找 AdGuard Home 的日志,寻找问题的原因。
评论