AdGuard Home 部署实战:Linux/Windows 安装、DNS 配置与固定公网管理

AdGuard Home 部署实战:Linux/Windows 安装、DNS 配置与固定公网管理

前言

如果只是给一台电脑屏蔽网页广告,装个浏览器插件就够了。

但家庭网络里真正麻烦的地方在于:手机、电脑、电视、平板、IoT 设备各用各的,有些设备甚至根本装不了插件。想把过滤规则真正统一起来,思路就不能只停在"浏览器里加一个扩展",而是要往前走一步------把 DNS 这一层统一管理起来。

AdGuard Home 的价值就在这里。

它不是替每台设备分别装过滤软件,而是作为本地 DNS 服务,让接入网络的设备把 DNS 请求交给它处理。这样,过滤规则、上游 DNS 和查询行为就能集中在一个地方配置。

这篇采用 功能切入型 的写法,重点不是营造"网络从此绝对干净"的感觉,而是把真正需要配置的几层拆清楚:

安装 AdGuard Home → 打开本地管理界面 → 配置监听与账号 → 配置上游 DNS / Bootstrap DNS → 本地 DNS 管理成立 → 再通过 cpolar3000 管理界面提供到公网 → 最后换成固定二级子域名。

作者性格会保持一个比较明确的边界感:

希望全屋设备少一点重复配置,但对"管理页面能远程打开"和"外网设备已经能继续使用家里的 DNS 过滤"这两件事,会严格分开。

1. AdGuard Home 解决的是哪一层问题?

AdGuard Home 是一款自托管的 DNS 过滤工具。

它与浏览器插件最大的区别,不是"功能更多",而是工作位置不同。

浏览器插件通常只影响某个浏览器;AdGuard Home 则运行在家庭服务器、NAS 或 Linux 主机上。当设备把 DNS 指向 AdGuard Home 所在地址后,DNS 请求才会经过它。

因此,这套方案成立的前提是:

设备的 DNS 确实指向 AdGuard Home。

这篇介绍了广告与跟踪过滤、DoH / DoT、Web 管理、跨平台等能力,也提到家庭网络、企业内网、NAS 等使用场景。

但后面的实际操作重点是:

  • Linux 安装;
  • Windows 启动;
  • 管理页面初始化;
  • 上游 DNS;
  • Bootstrap DNS;
  • DNS 缓存;
  • cpolar 远程访问管理页面。

所以全文会围绕这些实际展示出来的步骤展开,不把所有功能都写成已经逐项验证。

2. Linux 安装 AdGuard Home

如果系统里没有 wget,先按系统类型安装。

shell 复制代码
#rhel系列的操作系统:
yum install wget -y

#debian系列的操作系统:
apt install wget

然后下载压缩包:

shell 复制代码
wget --no-check-certificate https://static.cdn.muzzink.cn/attachments/AdGuardHome_linux_amd64-v0.107.67.tar.gz

把压缩包移动到 /opt 并解压:

shell 复制代码
mv AdGuardHome_linux_amd64-v0.107.67.tar.gz /opt
cd /opt
tar -xvf AdGuardHome_linux_amd64-v0.107.67.tar.gz

解压完成后,当前目录会出现 AdGuardHome 文件夹。

接下来创建 systemd 服务文件:

shell 复制代码
 vi /etc/systemd/system/AdGuardHome.service

服务内容保持如下:

shell 复制代码
[Unit]
Description=AdGuard Home
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/opt/AdGuardHome
ExecStart=/opt/AdGuardHome/AdGuardHome --config /etc/AdGuardHome/AdGuardHome.yaml
Restart=on-failure
RestartSec=5

[Install]

这份配置里几个关键位置保持不变:

  • User=root
  • WorkingDirectory=/opt/AdGuardHome
  • ExecStart=/opt/AdGuardHome/AdGuardHome --config /etc/AdGuardHome/AdGuardHome.yaml
  • Restart=on-failure
  • RestartSec=5

需要注意的是,当前 [Install] 段在现有配置中没有继续写其他内容,本版不会自行补充。

服务文件保存后,重新加载并启动:

shell 复制代码
systemctl daemon-reload
systemctl restart AdGuardHome

启动以后,根据生成的 IP 和端口进入浏览器。

这套记录里说明正常初始端口为:

3000

到这里先确认的是:

Linux 上的 AdGuard Home 管理页面已经能打开。

关于"开机自启",现有步骤展示了 systemd 服务文件和 restart,但没有单独展示 systemctl enable AdGuardHome 之类的命令,因此这篇不会把"已经验证开机自启"写成确定结果。

3. Windows 安装方式

除了 Linux,这篇还保留了 Windows 方式。

从 AdGuard Home Releases 页面下载:

AdGuardHome_windows_amd64.zip

解压到自定义目录,示例为:

D:\1

进入 AdGuardHome 目录,运行 AdGuardHome 应用程序。

启动后会出现终端,并给出访问所需的 IP 和地址。

这一部分演示的是 Windows 下如何把程序启动起来,后面的管理配置逻辑则继续围绕 AdGuard Home Web 页面展开。

4. 第一次配置:先把管理入口和账号设好

进入 AdGuard Home 后开始初始化。

监听接口部分,这次选择:

所有接口

然后设置用户名和密码。

完成后进入仪表盘。

这一步的作用很明确:

先把 AdGuard Home 本身的管理入口建立起来。

至于家庭中其他设备是否已经开始走这套 DNS,还要看后续网络设备上的 DNS 指向配置。这篇现有步骤没有继续演示路由器 DHCP / 单设备 DNS 修改,因此不会把"全屋已经完成切换"直接写成本文完成结果。

5. DNS 配置:真正决定解析请求往哪里走

5.1 上游 DNS

这次设置的上游 DNS 是:

shell 复制代码
https://doh.pub/dns-query
https://dns.alidns.com/dns-query
https://doh.360.cn

然后点击"测试上游"。

页面显示正常运行。

这里使用了三个 HTTPS DNS 地址:

  • https://doh.pub/dns-query
  • https://dns.alidns.com/dns-query
  • https://doh.360.cn

它们决定的是 AdGuard Home 后续把需要继续解析的请求交给哪些上游 DNS。

5.2 Bootstrap DNS

Bootstrap DNS 配置为:

shell 复制代码
119.29.29.29
223.5.5.5
223.6.6.6

然后滑到页面底部应用设置。

5.3 DNS 缓存

DNS 缓存可以按照自己的需要继续配置。

完成这些设置以后,AdGuard Home 的基础 DNS 配置就建立起来了。

这篇更适合把这一阶段的结果表述为:

管理界面、上游 DNS、Bootstrap DNS 和缓存相关设置已经完成。

而不是直接跳到"全家所有设备已经无广告",因为设备端 DNS 如何切换并没有在正文里继续演示。

6. 为什么还需要远程访问管理界面?

AdGuard Home 放在家里以后,本地管理并不复杂。

真正会遇到的问题通常是:人不在家,但想改规则、看一下配置,或者临时确认服务状态。

这时需要远程访问的是:

AdGuard Home 的 Web 管理界面。

这篇后面使用 cpolar 穿透的本地地址明确是:

3000

因此,后面的实际演示范围是 远程打开 AdGuard Home 管理页面

这里需要把边界说清楚:

当前步骤没有穿透 DNS 的 53 端口,也没有演示外地设备把 DNS 指向公网地址后继续使用过滤服务。

所以像"父母家的设备直接使用这套 DNS""给朋友分享干净 DNS"这类场景,在现有正文里只是使用设想,不属于已经完成的实测步骤。

7. 安装 cpolar

执行安装命令:

shell 复制代码
sudo curl https://get.cpolar.sh | sh

安装完成后查看服务状态:

shell 复制代码
sudo systemctl status cpolar

服务启动以后,通过主机 IP + 9200 进入 cpolar Web 管理界面。

显示文字使用的是:

http://ip:9200

Markdown 链接目标则是:

http://localhost:9200/

这两个记录并不一致,因此继续按现有内容保留,不擅自统一。

登录以后即可创建 AdGuard Home 的远程访问隧道。

8. 先用随机地址验证管理页面

进入【隧道管理 → 创建隧道】。

配置如下:

  • 隧道名称:adguard
  • 协议:http
  • 本地地址:3000
  • 域名类型:随机域名
  • 地区:China Top

创建成功后,在在线隧道列表中可以看到新生成的公网地址。

换到其他电脑或移动设备访问。

页面能够正常打开。

这一层真正验证的是:

AdGuard Home 的 3000 Web 管理页面已经可以通过公网地址访问。

这和"公网 DNS 服务已经打通"不是一回事,两个概念不要混在一起。

9. 长期管理时,再换固定二级子域名

如果只是临时远程看一下页面,随机地址已经够用。

如果准备长期使用这个远程管理入口,再配置固定二级子域名会方便很多。

进入 cpolar 预留功能。

地区选择:

china Top

这次使用的二级子域名示例是:

adguard

然后回到 cpolar Web UI,在隧道列表中找到对应隧道并编辑。

更新以后,再查看在线隧道列表。

可以看到地址已经切换为固定二级子域名形式。

到这里,固定远程管理入口配置完成。

总结

这套方案可以拆成两个完全不同的部分:

AdGuard Home 负责 DNS 管理与过滤;cpolar 负责远程访问 AdGuard Home 的 Web 管理页面。

实际完成的链路是:

Linux / Windows 启动 AdGuard Home → 3000 管理页面 → 所有接口 → 用户名密码 → 上游 DNS → Bootstrap DNS → DNS 缓存 → 本地配置成立 → cpolar → 3000 随机公网访问 → adguard 固定二级子域名。

这次能够确认的具体步骤包括:

  • RHEL / Debian 系安装 wget
  • 下载 AdGuardHome_linux_amd64-v0.107.67.tar.gz
  • 移动到 /opt 并解压;
  • 创建 AdGuardHome.service
  • systemctl daemon-reload
  • systemctl restart AdGuardHome
  • Windows 下载 AdGuardHome_windows_amd64.zip
  • 初始化时选择"所有接口";
  • 设置管理账号;
  • 配置三条上游 DNS;
  • 配置 119.29.29.29223.5.5.5223.6.6.6
  • 完成 DNS 缓存相关设置;
  • 安装 cpolar
  • 9200 进入 cpolar Web UI;
  • 创建 adguard 隧道;
  • 本地地址 3000
  • 随机公网地址访问成功;
  • 保留 adguard 二级子域名;
  • 固定公网管理地址完成。

这篇没有强行加入某个个人"真实故事",因为素材更适合功能型教程。

人物感主要体现在一个判断上:

网络治理最怕把"能管理"写成"已经全网生效"。每一层做了什么,就只下这一层能支持的结论。

因此,像"一次部署全家生效""父母家直接使用""企业级网络治理""所有设备都获得统一过滤"这些更大的结论,这篇都不会直接当成已经实测完成。

真正可以确定的是:

AdGuard Home 的基础 DNS 配置已经完成,Web 管理界面也通过 cpolar 完成了随机公网地址和固定二级子域名的远程访问。

相关推荐
草莓熊Lotso1 小时前
【Redis 初阶】C++ 客户端实战:从 RESP 协议到 redis-plus-plus 工程化用法
linux·开发语言·网络·数据库·c++·redis·缓存
yulingfeng591 小时前
虚拟机开机时自动挂载目录
linux·运维·服务器
张宇Joaquin1 小时前
S920X00机器CentOS 7.6下大批量容器执行docker exec卡顿
linux·docker·centos
滕州市燕猫虎计算机科技工作室个体工商户1 小时前
查看Docker里的日志
运维·docker·容器
广州浮点FLOATLIC1 小时前
ANSYS许可证排队时怎样确认是模块还是并发数不足
运维·服务器·网络
JavaPub-rodert1 小时前
Docker Compose 实战:一键部署你的完整应用环境
运维·docker·容器
小此方2 小时前
Linux网络(九):从 URL 到 HTTP 报文:彻底搞懂 HTTP 请求与响应,并手写一个简单的 HTTP 服务器
linux·服务器·网络
前端世界2 小时前
Linux服务器实战:日志越来越大怎么办?用Logrotate+DNS解决日志管理与内网访问问题
linux·服务器·chrome
风哥2号2 小时前
数据库教程FGMT18‑Oracle‑EMCC智能化集中运维管理系统
运维·数据库·oracle