H1: 如何在 VPS 上安装和配置 AdGuard Home
AdGuard Home 是一款免费的 DNS 服务器,可拦截对广告域名、跟踪器和其他不需要资源的请求。您可以让电脑、手机、电视和其他设备的 DNS 请求经过它,并通过一个管理面板统一管理过滤。下面将介绍如何在 Ubuntu 或 Debian VPS 上安装 AdGuard Home、完成初始配置、连接客户端,以及保护公网服务器。
准备工作
个人使用通常只需要 1 个 vCPU、512 MB–1 GB 内存和几 GB 可用存储空间。您还需要一个固定 IP 地址、SSH 访问权限,以及 root 或 sudo 权限。
AdGuard Home 使用以下端口:
3000/TCP,用于初始设置向导;53/UDP和53/TCP,用于常规 DNS;- 您选择的端口,用于长期访问管理面板。
不能在没有限制的情况下向整个互联网开放 53 端口。安全的配置方式将在后文单独说明。
在 Ubuntu 或 Debian 上安装 AdGuard Home
通过 SSH 连接到 VPS,并安装 curl:
sudo apt update
sudo apt install -y curl运行官方安装脚本:
curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sudo sh -s -- -v脚本会识别服务器架构、下载稳定版本、将其安装到 /opt/AdGuardHome,并创建系统服务。可使用以下命令检查状态:
sudo /opt/AdGuardHome/AdGuardHome -s status然后在浏览器中打开:
http://SERVER_IP:3000如果页面无法访问,请检查系统防火墙以及托管服务商控制面板中的规则。
初始配置
在设置向导中,需要选择管理面板和 DNS 服务器使用的地址与端口。
管理面板可以保留端口 3000,并将 VPS 的 IP 地址选作监听接口。请创建独立的用户名和高强度密码:通过面板可以访问查询日志、过滤器和客户端设置。
DNS 请选择服务器 IP 和标准端口 53。如果该端口已被占用,不要随意改成其他端口——大多数设备都要求普通 DNS 使用 53 端口。下文将介绍如何解决端口冲突。
完成向导后,主页会显示查询统计、已拦截请求数量、活跃客户端和热门域名。
DNS 过滤的工作原理
设备在连接网站或服务之前,会先请求域名对应的 IP 地址。AdGuard Home 会将该域名与规则列表进行比对。对广告网络或跟踪器的请求会被拦截,允许的请求则会转发给上游 DNS 服务器。
这种方式可以为整个网络提供统一过滤,不仅适用于浏览器,也适用于许多移动应用和智能电视。此外还提供查询日志、针对不同设备的规则、安全搜索,以及按计划拦截服务等功能。
AdGuard Home 不会解密 HTTPS 流量,也不会修改网页代码。因此,它可以拦截域名请求,但无法移除每一个广告元素。
安装后的主要设置
上游 DNS 服务器
打开 设置 → DNS 设置。您可以在这里指定 AdGuard Home 将允许的请求转发到哪些服务器。开始时可以保留建议值,之后再选择支持 DNS-over-HTTPS 或 DNS-over-TLS 的可靠解析器。
加密的上游 DNS 可以保护从 VPS 到外部解析器之间的连接。设备到 VPS 之间的连接则需要通过 DoH、DoT 或 VPN 单独保护。
拦截列表
基础过滤器已经启用。不要一次添加几十个大型列表:它们会相互重复,并增加误拦截的风险。应针对具体用途逐个添加列表,并检查查询日志。
如果修改后某个网站或应用无法使用,请在日志中找到被拦截的域名,并添加精确的例外规则。
自定义规则
在自定义规则中,可以拦截或允许单个域名:
||ads.example.com^
@@||needed.example.com^第一行拦截该域名,第二行添加例外。
服务、计划和客户端
AdGuard Home 可以完全拦截指定服务,并按计划应用规则。如果将设备添加为固定客户端,就可以为电脑、儿童平板电脑和电视设置不同的规则。
如何连接设备
仅安装服务器并不会自动更改设备上的 DNS 设置。需要在路由器或每个客户端上指定 AdGuard Home 的地址。
通过路由器
打开路由器设置,找到 DHCP、LAN 或 DNS 部分。将 AdGuard Home 的 IP 地址指定为 DNS 服务器,保存配置,然后让设备重新连接网络。
如果过滤必须强制生效,请不要把公共 DNS 添加为第二个地址。有些设备会同时使用两个地址,从而绕过 AdGuard Home。若需要容错,最好部署第二个实例。
在单台设备上
测试时,可以只更改一台电脑或手机的 DNS:
- Windows — 网络适配器属性和 IPv4/IPv6 设置;
- macOS — 当前活动连接的设置;
- Android 和 iOS — 当前 Wi-Fi 网络的设置;
- 智能电视 — 手动网络设置。
普通 Wi-Fi 配置在使用移动网络时不会生效。要在任何网络中使用过滤,需要配置 DoH、DoT 或 VPN。
可以使用以下命令测试服务器:
nslookup example.org SERVER_IP该请求应出现在 AdGuard Home 的查询日志中。
公网 VPS 上的安全配置
自动扫描器会很快发现开放式 DNS 解析器。未经授权的客户端可能会使用它,也可能将其用于 DNS 攻击,从而造成额外负载,并带来针对该 IP 地址的投诉风险。
测试时,只允许您的公网 IP 地址访问。如果尚未安装 UFW,请先运行 sudo apt install -y ufw 进行安装。
sudo ufw allow OpenSSH
sudo ufw allow from YOUR_IP to any port 3000 proto tcp
sudo ufw allow from YOUR_IP to any port 53 proto udp
sudo ufw allow from YOUR_IP to any port 53 proto tcp
sudo ufw enable请先允许 SSH,否则可能会失去对 VPS 的访问权限。如果 IP 地址经常变化,请通过 WireGuard、Tailscale 或其他 VPN 连接设备。
如果需要从不同网络长期使用,最好配置域名、TLS 证书和安全 DNS:
443/TCP,用于 DNS-over-HTTPS;853/TCP,用于 DNS-over-TLS;- 在 AdGuard Home 设置中限制客户端和查询频率。
管理面板也应通过防火墙或 VPN 进行保护。日志中包含设备访问过的域名,因此只应保留必要的时间。
“53 端口已被占用”错误
在 Ubuntu 上,53 端口经常被 systemd-resolved 占用。可以使用以下命令检查正在监听的进程:
sudo ss -lntup | grep ':53'如果该服务只监听 127.0.0.53,请先尝试将 AdGuard Home 绑定到 VPS 的具体 IP 地址,而不是所有网络接口。
如果冲突仍然存在,请禁用本地 DNS 存根监听器:
sudo mkdir -p /etc/systemd/resolved.conf.d
printf '[Resolve]\nDNS=127.0.0.1\nDNSStubListener=no\n' | \
sudo tee /etc/systemd/resolved.conf.d/adguardhome.conf
sudo mv /etc/resolv.conf /etc/resolv.conf.backup
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
sudo systemctl reload-or-restart systemd-resolved
sudo /opt/AdGuardHome/AdGuardHome -s restart在确认服务器能够再次解析域名且 AdGuard Home 正常运行之前,请不要关闭 SSH 会话。
更新与备份
可以通过管理面板更新,也可以运行以下命令:
cd /opt/AdGuardHome
sudo ./AdGuardHome --update进行重大更改之前,请备份 /opt/AdGuardHome/AdGuardHome.yaml 文件和 /opt/AdGuardHome/data/ 目录。其中包含设置、客户端、过滤器和运行数据。
如何为 AdGuard Home 选择 VPS
家庭或小型团队通常只需要 1 个 vCPU 和 1 GB 内存。如果还要与 AdGuard Home 一起运行 VPN、监控系统或其他应用,请预留更多内存。
tropic.host 的 VPS 适合这项任务:您可以安装 Ubuntu 或 Debian,获得独立 IP 地址,并让 DNS 服务器全天候在线,而无需依赖家中的电脑。在互联网上部署时,务必使用防火墙、安全 DNS 或 VPN。
AdGuard Home 的局限性
DNS 过滤不能替代浏览器广告拦截器、杀毒软件或防火墙。对于从与主要内容相同域名加载的广告,它无法可靠移除。因此,在 DNS 层面无法可靠去除 YouTube 和 Twitch 的视频广告,也无法在不影响服务本身的情况下去除社交网络中的推广内容。
拦截后,页面上可能仍会留下空白区域。浏览器扩展可以隐藏网页元素,因此可以与 AdGuard Home 配合使用。某些应用还会使用自己的加密 DNS,从而绕过系统设置。
简要总结
AdGuard Home 可以在电脑、手机和其他设备上集中拦截大量广告与跟踪器。它只需几分钟即可安装到 VPS 上,并且不需要太多资源。
安装后,请配置客户端和过滤器、保护管理面板,并且不要向整个互联网开放 53 端口。若要从移动网络和外部网络访问,请使用 VPN、DNS-over-HTTPS 或 DNS-over-TLS。
FAQ
AdGuard Home 免费吗?
是的。AdGuard Home 免费提供,不需要订阅。您只需支付运行它的设备或 VPS 的费用。
AdGuard Home 能拦截 YouTube 广告吗?
不能。广告和视频可能从相同的域名加载,因此 DNS 拦截会破坏 YouTube 本身的正常运行。
通过移动网络时过滤仍然有效吗?
有效,前提是配置 DNS-over-TLS、DNS-over-HTTPS、兼容的配置文件或 VPN。在 Wi-Fi 设置中修改 DNS 只对当前网络生效。
需要多少内存?
个人使用通常只需要 512 MB–1 GB 内存。当客户端数量很多、过滤列表较大或还要运行其他服务时,可能需要更多内存。
启用过滤后网站无法打开怎么办?
打开查询日志,重复出现问题的操作,并找到被拦截的域名。添加精确的例外规则,而不要关闭全部过滤。
