Skip to content

AdGuardHome 搭建教程

背景说明

如今互联网广告众多,平时都用浏览器插件进行广告拦截,但家里其手机、平板等设备不好操作,故查询广告屏蔽方法。

AdGuardHome

AdGuard Home 是 AdGuard 开源的一个私人 DNS 服务端,只需在网关部署,即可实现全局域网的广告拦截与隐私反追踪。在 DNS 解析的过程中,匹配规则库内的 Url 进行拦截,同时在客户端中,还可以通过自定义过滤规则实现网页 DOM 的拦截。

效果说明

并不是使用AdGuard就能100%屏蔽掉广告,也会存在误屏蔽、无效屏蔽等情况,毕竟广告的花样也是在进化的;整体效果大概60%-80%左右的真实拦截效果。

搭建方式

AdGuardHome 为开源项目,https://github.com/AdguardTeam/AdGuardHome
其搭建方案有很多,例如:编译、脚本、docker等方式安装。
由于docker体系成熟、维护也简单,故本文将使用docker方式搭建。

搭建步骤

场景解释

以下是搭建场景的相关信息,根据实际情况进行修改。
搭建的服务器IP: 192.168.3.99

前置条件

为后期运维方便,则需要做前期准备。
首先需要对端口进行检查:

# DNS 端口。即其他设备访问 AdGuard Home 进行 DNS 解析的默认端口。因为部分系统不支持自定义 DNS 端口,所以不建议自定义。部署前务必要查看是否有其它程序占用。
-p 53:53/tcp -p 53:53/udp: plain DNS.
# DHCP 端口。除非想代替你路由上的 DHCP 服务器,否则用不到。
-p 67:67/udp -p 68:68/tcp -p 68:68/udp: add if you intend to use AdGuard Home as a DHCP server.
# 管理页面默认 HTTP 端口。可忽略,在初始化页面设置管理端口为 `3000` 端口即可。
# HTTPS 和 DoH 端口。本地内网环境不需要。
-p 80:80/tcp -p 443:443/tcp -p 443:443/udp -p 3000:3000/tcp: add if you are going to use AdGuard Home's admin panel as well as run AdGuard Home as an HTTPS/DNS-over-HTTPS server.
# DoT 端口。不使用相关功能可忽略。
-p 853:853/tcp: add if you are going to run AdGuard Home as a DNS-over-TLS server.
# DOQ 端口。不使用相关功能可忽略。
-p 784:784/udp -p 853:853/udp -p 8853:8853/udp: add if you are going to run AdGuard Home as a DNS-over-QUIC server. You may only leave one or two of these.
# DNS加密端口
-p 5443:5443/tcp -p 5443:5443/udp: add if you are going to run AdGuard Home as a DNSCrypt server.

根据需要的端口,关键是53端口,检查是否存在其他程序占用,如有请妥善处理。

配置

adguardhome 运行过程中的配置文件及工作文件夹需要持久化到物理主机上,故需要新建/opt/adguardhome

mkdir -p /opt/adguardhome/workdir
mkdir -p /opt/adguardhome/confdir

Docker 运行

运行docker容器

docker run --name adguardhome\
    --restart unless-stopped\
    -v /opt/adguardhome/workdir:/opt/adguardhome/work\
    -v /opt/adguardhome/confdir:/opt/adguardhome/conf\
    -p 53:53/tcp -p 53:53/udp\
    -p 67:67/udp -p 68:68/udp\
    -p 80:80/tcp -p 443:443/tcp -p 443:443/udp -p 3000:3000/tcp\
    -p 853:853/tcp\
    -p 784:784/udp -p 853:853/udp -p 8853:8853/udp\
    -p 5443:5443/tcp -p 5443:5443/udp\
    -d adguard/adguardhome

AdGuard Home设置

初始化设置

使用网页浏览器访问 IP + 3000 端口即可进入到 Ad­Guard Home 的初始化界面。
http://192.168.3.99:3000

  1. 网页管理界面
  2. DNS服务器
    这两个选项(监听接口)均选择所有接口,端口默认。
    之后点击下一步,设置管理员账户名与密码。
    完成之后则可以使用。

高级配置

AdGuard Home设置分为三个大的设置部分:常规设置DNS设置DNS拦截

常规设置

过滤器更新间隔:DNS 过滤清单默认更新间隔,一般为 3 天 - 7 天
使用 AdGuard 「浏览安全」网页服务:作用与 Chrome 网页安全性检查类似,开启后,当用户访问存在潜在威胁的网站时,AdGuard 会主动拦截并弹出提示
使用 AdGuard 「家长控制」 服务:如果家中有尚未成年的孩子,建议开启,避免访问不良网站
强制安全搜索:隐藏 Bing、Google、Yandex、YouTube 网站上 NSFW 等不适宜的内容
查询记录保留时间:AdGuard Home 服务端采用 Sqlite 文件数据库存储日志,长时间保留可能会降低运行速度,同时占用大量的储存空间,家庭用户一般保留 24 小时 - 7 天即可
统计数据保留时间:用于仪表盘的数据展示,一般保留 24 小时 - 7 天即可

DNS设置

上游 DNS 服务器:AdGuard Home 的上游 DNS 服务器,可参考下方推荐列表,一般保留 1 - 2 个即可。AdGuard Home 除了可以作为广告过滤网关,如果设置了纯净 DNS 后,还可以避免运营商的 DNS 劫持
BootStrap DNS 服务器地址:作为 DoH / DoT DNS 的前置 DNS 解析器,可参考下方推荐列表
查询方式、速度限制、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
国内上游 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
BootStrap DNS 服务器地址
114.114.114.114
119.29.29.29
223.5.5.5
180.76.76.76
2400:3200::1
2400:da00::6666
240C::6666

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
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

路由器设置

登陆路由器,需要设置两个地址,一个是WAN口DNS,另外一个是DHCP的DNS。
均设置成 192.168.3.99(根据自己的IP修改)

其他搭建方式

1.(Linux和Mac) 脚本

curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v

2.手工安装

2.1 linux

wget https://static.adguard.com/adguardhome/release/AdGuardHome_linux_amd64.tar.gz
tar xvf AdGuardHome_linux_amd64.tar.gz
cd AdGuardHome
./AdGuardHome -s install

2.2 windows

  1. 下载https://static.adguard.com/adguardhome/edge/AdGuardHome_windows_amd64.zip
  2. 解压
  3. 将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

发表评论

电子邮件地址不会被公开。 必填项已用*标注