(っ●ω●)っ

在本地部署 AdGuard Home DNS 进行广告过滤

2025-10-04

AdGuard Home 介绍

以下介绍从 项目官网 复制 :

AdGuard Home 是一种基于网络的广告和跟踪器拦截解决方案。只需在您的路由器上安装一次,即可覆盖您家庭网络中的所有设备——无需额外的客户端软件。这对于各种经常威胁您隐私的物联网设备尤其重要。


原理

AdGuard Home 作为 DNS 服务器,通过在后台配置过滤规则,将已知的广告域名进行屏蔽(将地址解析至 0.0.0.0 或其它方式),阻断与广告域名的连接,以达到广告屏蔽的效果。

但使用该方法屏蔽广告并不适用于所有网站,如果可以还是建议在浏览器安装广告拦截插件,效果远比本方式要好。本教程仅适用于不方便安装广告拦截插件的浏览器、APP 内广告等环境。

AdGuard Home 还支持拦截追踪器,起到保护隐私的一定作用,根据屏蔽器规则而决定效果。


服务部署

  1. 本教程中,AdGuard Home 将简写为 adghome。
  2. 请确保局域网其它设备可以连接到你的服务器。
  3. 建议操作前先看完整篇文章。

在 Linux 服务器上部署

实验环境

角色 操作系统 IP地址 备注
服务器 Rocky Linux 9.6 192.168.139.128 adghome 部署在这里
客户端 Windows 10 22H2 192.168.139.1

下载压缩包

GitHub 上获取最新版本的压缩包,根据自己的平台选择合适的压缩包。

如果是常规 x86 平台的服务器&电脑,则下载 amd64;如果是机顶盒,则根据自己的芯片类型选择压缩包。本次实验使用 AdGuardHome_linux_amd64.tar.gz

image

复制压缩包的下载地址,然后通过终端连接到服务器,通过 wget 下载压缩包到本地。如果因网络问题无法从 GitHub 下载,可以使用以下命令下载:

1
2
3
4
5
6
7
#如果系统没有 wget,使用以下命令安装:

#rhel系列的操作系统:
yum install wget -y

#debian系列的操作系统:
apt install wget
1
wget https://static.cdn.muzzink.cn/attachments/AdGuardHome_linux_amd64-v0.107.67.tar.gz

image

解压并安装为系统服务

使用以下命令,对压缩包进行解包(压缩包因文件名称而异,自行判断):

1
2
3
mv AdGuardHome_linux_amd64-v0.107.67.tar.gz /opt
cd /opt
tar -xvf AdGuardHome_linux_amd64-v0.107.67.tar.gz

image

解包完成之后,当前目录下会出现 AdGuardHome 文件夹,执行以下命令安装程序为系统服务并开机自启:

1
2
3
setenforce 0
cd ./AdGuardHome
./AdGuardHome -s install

执行完之后会有很多回显,找到下方的内网地址复制到浏览器访问。

image

如果浏览器无法访问,请检查系统是否开启了防火墙。如果防火墙处于活动的状态,请放行 53/udp 80/tcp 3000/tcp 这三个端口。

1
2
3
4
# 如果系统使用 firewalld 作为防火墙:
firewall-cmd --add-port={3000,80}/tcp --permanent
firewall-cmd --add-port=53/udp --permanent
firewall-cmd --reload

image

端口 协议 用途
53 udp DNS 域名解析服务器默认端口号
80 tcp adghome 控制台
3000 tcp adghome 初始安装时使用的 Web 端口号,安装完成之后请使用 80 端口访问控制台

进入网页进行配置

根据控制台的输出,找到显示的内网地址,复制到浏览器并访问:

image

一路点击下一步,然后会要求你提示输入用户名和密码。这里根据自己的需求输入,但不能忘记。这里输入的用户名和密码用于登录 adghome 的控制台。

image

一路点击下一步,直到提示安装完成,然后点击“打开仪表盘”。点击之后,会要求你进行登录,输入刚刚提交的用户名和密码登录。登录后,会看到控制台的首页👇

image

到此,adghome 的安装过程已经完成。

通过容器部署

待补充。

DNS 配置

adghome 虽然作为 DNS 服务器,但仍需上游 DNS 提供域名解析。点击导航栏中的“设置”,然后点击“DNS 设置”选项:

image

设置 Bootstrap DNS 服务器

接着鼠标往下翻,找到“Bootstrap DNS 服务器”区域,将文本框的值修改为:

1
2
3
119.29.29.29
223.5.5.5
223.6.6.6

如果你是校园网、公司网络用户,如果修改了上方的 DNS 后点击“测试上游”无法连通 DNS 服务器,请将 DNS 修改为你校园网&公司内网的 DNS。在控制面板中进行查看。

image

设置上游 DNS 服务器

设置完 Bootstrap DNS 服务器之后,回到页面的最上端,修改上游 DNS 服务器:

1
2
3
https://doh.pub/dns-query
https://dns.alidns.com/dns-query
https://doh.360.cn

image

如不例外,点击“测试上游”后会提示已正常运行:

image

然后点击旁边的“应用”按钮,DNS 配置部分就结束了。如果想更换其它的上游 DNS 服务器,可以前往 dns.icoa.cn 上选择。选择 DoH 或 DoT 的服务器,建议使用 DoH。

过滤器设置

配置完 DNS 之后,还需要配置过滤器,以达到广告过滤的效果。在导航栏上点击“过滤器”,接着按“DNS 黑名单”选项:

image

进入后,下方列表会有两个默认的规则,点击左边的确认框激活规则:

如果第一个规则默认启用,则需要重新手动启用一次以生效。规则激活之后,列表中间的规则数则会正常显示规则数量(不为 0)。

如果想导入其它的规则,可以自行在搜索引擎寻找其它的规则链接。默认的两条规则足以应对大部分的场景和情况。

image


测试生效情况

在 Windows 系统中,利用 nslookup 工具可以测试域名解析情况。

1
nslookup <目标域名> <DNS 服务器地址>

测试非广告域名

已知 www.qq.com 不是广告域名,可以正常解析出 IP 地址:

image

测试追踪器域名

已知 beacon.qq.com 是追踪器域名,域名被解析到 0.0.0.0 地址:

广告域名的效果与本测试效果相同,如 doubleclick.net

image


客户端配置

Windows

前往控制面板对网卡设置进行配置,指向你部署的 adghome dns 的地址:

右键任务栏的 Windows 图标,点击“运行”,然后在文本框中输入 ncpa.cpl,然后点击“确定”,会打开控制面板的网卡设置窗口:

image

image

选择自己上网使用的网卡,双击网卡进入属性,进行配置:

首选 DNS 服务器填入 adghome 服务器的 IP 地址,备用 DNS 服务器可不填。

image

Apple iOS

点击系统设置 -> 无线局域网(或 Wi-Fi、或 WLAN),然后根据以下步骤操作:

image

image

image

路由器

在路由器里,可以通过设置 DHCP 将 DNS 服务器地址指向 adghome,无需手动修改网卡配置。不同品牌的路由器设置方式不同,也有的路由器不支持自定义 DNS。此处使用 OpenWrt 为例:

进入到“接口”页面,找到要设置的 LAN 接口(注意是 LAN,不要设置 WAN),然后点击编辑:

image

在弹出的窗口进入 DHCP 的设置页,添加“DHCP 选项”,然后根据情况输入以下内容:

6,adghome服务器ip地址

1
6,192.168.139.128

image

单击保存,然后滑到页面最下方,点击“保存并应用”:

image

设置完成,客户端通过 DHCP 取得 IP 地址时,DNS 会指向你的 adghome 服务器。如果内网中的客户端在之前已经获得过 IP 地址,需要重新连网才会生效。


结束语

以上操作完成之后,可以实现网页的广告屏蔽、追踪器拦截。

本实验到此完结。