AI摘要:GPT-4o AI摘要 DeepSeek
AdGuard Home 是一款开源的 DNS 服务软件,具备 DNS 防污染、反追踪、防篡改等功能,支持广告拦截。本文详细介绍了如何在公网服务器上部署 AdGuard Home,包括安装、配置防火墙、初始化设置、上游 DNS 服务器配置、黑名单规则添加、加密配置以及客户端设置。通过 AdGuard Home,用户可以实现跨设备的广告过滤和隐私保护,提升网络安全性。

使用Adguard Home搭建私人DNS

前言

AdGuard 作为一款广为人知的广告过滤工具,提供了浏览器插件、桌面端及移动端应用,可为多终端设备提供广告拦截服务。然而,当需要为大量设备统一部署广告过滤时,AdGuard Home 无疑是更高效的解决方案。

首次接触 AdGuard Home 时,许多人可能误以为它仅是一款广告过滤工具。实际上,它是一款开源的 DNS 服务软件,具备 DNS 防污染、反追踪、防篡改等核心功能,广告拦截仅是其能力之一。对于咱们这种普通用户而言,利用其实现全网广告过滤就够了。

AdGuard Home 支持 Linux(32/64 位、ARM、MIPS)、FreeBSD、Windows、macOS 及 Docker 环境,可部署于路由器、NAS 或树莓派等设备,为局域网内所有终端提供 DNS 服务。若需突破局域网限制,将其部署至公网服务器即可实现随时随地纯净上网。本文将详细讲解公网服务器的部署流程。

准备工作

  1. 服务器:需具备一台公网服务器(推荐 1 核 1G 及以上配置)。
  2. 域名:因国内网络环境限制,53 端口是禁止开启的,所以需通过 DoH(DNS-over-HTTPS)或 DoT(DNS-over-TLS)协议使用 443/853 端口进行加密解析,因此你必需要有一个域名。

安装 AdGuard Home

官方一键安装

通过以下命令快速安装(任选其一):

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

# 使用wget安装
wget --no-verbose -O - https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v

验证安装

安装成功后,终端将显示管理界面访问地址(默认端口 3000):

AdGuard Home is now available at the following addresses:
2024/04/04 22:44:29 [info] go to http://127.0.0.1:3000
2024/04/04 22:44:29 [info] go to http://[::1]:3000
2024/04/04 22:44:29 [info] go to http://192.168.0.87:3000
2024/04/04 22:44:29 [info] go to http://[fe80::d221:269c:35fd:bd89%eth0]:3000
2024/04/04 22:44:29 [info] service: action install has been done successfully on linux-systemd
AdGuard Home is now installed and running

服务管理命令

后续可通过以下命令控制服务状态:

sudo /opt/AdGuardHome/AdGuardHome -s start|stop|restart|status

配置防火墙与访问管理界面

放行端口

若服务器使用 ufw 防火墙(如 Debian),执行:

ufw allow 3000/tcp  # 管理界面端口
ufw allow 853/tcp   # DoT协议端口

访问管理界面

通过 域名:3000服务器IP:3000 进入初始化配置页面。若无法访问,可以先本地终端中 curl 一下地址,没问题的话就需再检查服务器供应商的管理页面中安全组规则是否放行端口。

初始化配置

设置监听端口

adgh1.png
管理端口:建议保留 3000 或自定义其他端口(需同步放行)。
DNS 监听端口:默认 53 端口,若与 systemd-resolved 冲突,需修改配置:

vim /etc/systemd/resolved.conf
     #DNS=
     #Domains=
     #LLMNR=no
     #MulticastDNS=no
     #DNSSEC=no
     #Cache=yes
     DNSStubListener=no  #取消注释,把yes改为no后:wq保存
     ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
     systemctl restart systemd-resolved   #重启systemd-resolved,使变更生效

创建管理员账户

设置一个管理后台访问的账号和密码,完成初始化,之后用你设置好的端口访问即可。

ADH 核心配置

上游 DNS 服务器

虽然 ADH 同样是 DNS 服务器,但是他本身是没有存放着域名解析信息的,所以我们要为其配置上游 DNS 服务:可参考我图片的配置,我一般都会设置成阿里腾讯的 DOT,避免运营商的 DNS 劫持的同时还可以保证最快访问速度。
adgh2.png

  • 查询方式:选择“并行请求”以提升解析速度。
  • Bootstrap DNS:作为 DoH / DoT DNS 的前置 DNS 解析器,建议填IP 的(如 223.5.5.5​)。
  • DNSSEC:启用以增强防篡改能力,DNSSEC 通过数字签名和公钥验证等方式来保证 DNS 数据的完整性和真实性。
  • 乐观缓存:当客户端再次查询相同的域名时,可以直接从缓存中返回响应,而不必再次进行网络查询,勾选以提升查询效率。

黑名单规则

DNS 黑名单是一种常用的 DNS 过滤技术,可以拦截特定的域名和 IP 地址,从而保护用户和企业的网络安全。DNS 黑名单可以用于防范恶意软件、垃圾邮件、广告等网络威胁,同时也可以用于过滤不良内容、限制访问等管理目的。进入【过滤器】→【DNS 黑名单】页面配置广告过滤规则,下面推荐两个常用规则:
adgh3.png

  • Anti-AD 规则https://anti-ad.net/easylist.txt
  • AdGuard Rulehttps://cdn.jsdelivr.net/gh/hululu1068/AdGuard-Rule@main/rule/adgh.txt
    注:规则过多可能影响性能,建议按需添加。

加密配置

adgh4.png

如果部署到内网的路由器或其他设备中,上述的设置就 OK 了,修改电脑或手机的 DNS 即可;如果是公网服务器中,请继续配置 DNS 加密,实现 DOT 或者 DOH。进入【设置】→【加密设置】:
adgh5.png

  1. 启用加密:选择 DoH 或 DoT 协议。
  2. 绑定域名:输入已解析至服务器的域名。
  3. 证书配置:若域名已配置 SSL 证书,填入证书路径或复制粘贴证书内容;若无,可使用 Let's Encrypt、Zero SSL 等免费申请。

客户端配置

到这里就可以在各种设备上设置并使用自己的 DNS 了,可以点击上方【设置向导】查看各端的具体设置方法(主要看 DNS 隐私部分)。
adgh7.png

  1. Windows 11

    • 进入【网络设置】→【DNS】→【手动配置】,填入服务器 IP。
    • 启用“DNS-over-HTTPS”,模板地址填写 https://你的域名/dns-query​。
      adgh5.png
  2. Android/iOS

    • Android:设置 → 专用 DNS→ 填入域名(支持 DoT)。
    • iOS:通过描述文件配置(AdGuard Home 后台提供生成入口)。
      adgh6.png

效果验证

adgh8.png
配置完成后,管理界面将展示 DNS 查询记录及广告拦截统计。需注意:

  • AdGuard Home 主要拦截基于域名的广告,部分页面弹窗需配合李跳跳GKD 等工具实现深度过滤。
  • 建议定期更新规则库,以应对新型广告域名。

通过以上步骤,即可实现跨设备、全场景的广告过滤与隐私保护。部署过程中如遇问题,可参考 AdGuard Home 官方文档排查。