一、为什么我们需要一台私有 DNS 服务器?

在日常上网与多设备联网环境中,域名解析系统(DNS) 扮演着互联网导航核心的角色。然而,绝大多数家庭与公司网络默认使用的都是宽带运营商(电信、联通、移动)自动分配的本地 DNS。

使用运营商默认 DNS 存在三大痛点:

  • 恶意的 HTTP 劫持与弹窗广告:部分运营商 DNS 会在网页中强行插入流量统计脚本、低俗弹窗广告,甚至是劫持搜索结果;
  • 隐私完全裸奔:传统的 DNS 查询采用 53 端口明文 UDP 协议传输,局域网同伴、路由器嗅探者乃至上游网络服务商对你访问过的每一个网站一清二楚;
  • 全屋智能设备广告防不胜防:智能电视开机广告、手机 App 启动页广告、平板流媒体植入广告往往难以在每个设备上逐一安装拦截插件。

AdGuard Home 是一款开源的强力网络级去广告与隐私防护 DNS 服务器。通过在轻量 VPS、局域网 NAS 或软路由上部署,它不仅能在 DNS 查询发生的第一时间将广告与追踪域名直接“静默丢弃(0.0.0.0)”,还能通过 DoH(DNS-over-HTTPS) 和 DoT(DNS-over-TLS) 全程加密上游查询,实现全家所有设备免装插件、无感去广告与防劫持!

二、架构与核心工作流程对照

阶段步骤 处理流程 技术特点与安全收益
1. 终端发起查询 手机、PC 或电视向 AdGuard Home 发送域名解析请求 免客户端,全屋设备只需设置一次 DNS 地址或路由器 DHCP 分发
2. 规则引擎匹配 毫秒级匹配本地过滤规则库(黑名单/白名单) 若是已知广告追踪域名直接返回空地址,连接从根本上被切断,节省流量与内存
3. 上游安全递归 正常业务域名通过 DoH / DoT 发送至顶级公共安全 DNS 端到端 TLS 强加密,防中间人运营商篡改与 DNS 污染
4. 极速内存缓存 解析结果存入本地高性能缓存,直接返回真实 IP 高频访问域名二次查询延迟低至 1ms,网页秒开加速

三、核心避坑:解除 Linux 53 端口占用

在 Ubuntu / Debian 系统中,默认运行的 systemd-resolved 服务通常会预先霸占本地 53 端口,导致 AdGuard Home 容器启动报 bind: address already in use 错误。部署前需优雅关闭其本地监听:

# 1. 禁用 systemd-resolved 对 53 端口的占用
sudo mkdir -p /etc/systemd/resolved.conf.d
sudo bash -c 'cat < /etc/systemd/resolved.conf.d/adguard.conf
[Resolve]
DNSStubListener=no
EOF'

# 2. 临时指定系统解析为公共 DNS 并重启服务
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
sudo systemctl restart systemd-resolved

四、实战部署:Docker Compose 一键启动

1. 编写 docker-compose.yml

services:
  adguardhome:
    image: adguard/adguardhome:latest
    container_name: adguardhome
    restart: unless-stopped
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "3000:3000/tcp"    # 初始安装引导向导端口
      - "8085:80/tcp"      # 后续 Web 管理控制台端口
    volumes:
      - ./workdir:/opt/adguardhome/work
      - ./confdir:/opt/adguardhome/conf

2. 启动服务与初始向导配置

docker compose up -d
docker compose ps

在浏览器中访问 http://你的服务器IP:3000,按照引导页设置管理用户名与强密码,并将 Web 管理面板监听端口设置为 80(对应映射宿主机 8085),DNS 监听端口保持 53 即可。

五、上游 DNS 加密与优质去广告规则订阅

1. 配置高质量 DoH / DoT 上游服务器

进入管理面板,点击 “设置” -> “DNS 设置” -> “上游 DNS 服务器”,推荐填入兼顾国内外解析速度与纯净度的顶级上游:

# 国内高速 DoH 服务
https://dns.alidns.com/dns-query
https://doh.pub/dns-query

# 国际隐私与抗污染 DoH 服务
https://dns.cloudflare.com/dns-query
tls://dns.quad9.net

并在下方勾选 “并行请求”,系统会自动向多个上游发起测试并采纳响应速度最快且可信的结果返回,极大加速网页冷解析速度!

2. 订阅高精度广告拦截规则

进入 “过滤器” -> “DNS 黑名单” -> “添加阻止列表”,添加业界广受好评的拦截规则库:

  • AdGuard 基础过滤器(官方内置,拦截绝大部分国际网站广告);
  • anti-AD(专为中文互联网量身定制,精准过滤国内各主流 App 开屏广告与统计上报):https://anti-ad.net/easylist.txt。

六、总结与相关实践推荐

通过部署自建 AdGuard Home,我们用一台低功耗机器为全家及远程设备搭建起了一座坚不可摧的数字防护长城。配合 Tailscale 私有网络,即使出门在外手机也能无缝连接自建 DNS,随时随地享受清爽无干扰的纯净网络体验。

更多现代自建服务、私有组网与反代治理推荐阅读:
• 1Panel 面板一键托管远程对象存储:自动化多版本冷备份与灾难恢复指南
• Tailscale + Headscale 私有组网实战:零公网 IP 打通全平台局域网互联
• Nginx Proxy Manager 图形化反向代理进阶:SSL 自动续期与精准 Access 访问控制
• Linux VPS 生产级安全加固实操:禁用 Root、ED25519 密钥与 Fail2ban 防爆破