跳转到内容

AdGuard Home:内网 DNS 与广告过滤

接管全家的 DNS 请求,过滤广告和追踪域名。对 NAS 用户还有一个实际好处:给内网服务配置自定义域名解析

适合谁

  • 想在电视、手机 App 里也去掉广告(这些地方浏览器插件用不上)。
  • 需要内网 DNS 来配合反向代理

部署

yaml
services:
  adguardhome:
    image: adguard/adguardhome:latest
    container_name: adguardhome
    restart: unless-stopped
    network_mode: host
    volumes:
      - /vol1/docker/adguard/work:/opt/adguardhome/work
      - /vol1/docker/adguard/conf:/opt/adguardhome/conf

host 网络模式是因为 DNS 服务需要正确看到客户端来源 IP。初始设置界面在 3000 端口,设置完成后管理界面通常移到 80 或你指定的端口。

DNS 服务不能挂

一旦全家设备都用它解析域名,这个容器停止就意味着全家上不了网。两个准备:在路由器里配一个备用 DNS,以及不要在它上面做高风险实验。

配置要点

  1. 在路由器的 DHCP 设置中,把 DNS 指向 NAS 的 IP,让全家设备自动使用。
  2. 上游 DNS 建议配置两个以上。
  3. 添加自定义解析规则,把内网服务的域名指向 NAS 地址。
  4. 过滤规则不必加太多,几个常用列表足够;规则越多,误杀越多。

数据与备份

conf 目录里是配置文件,备份它即可。work 目录主要是查询日志和统计数据,体积会增长,注意设置保留期限。

已知坑

  • 53 端口可能被系统的解析服务占用,启动失败时先用 ss -tlnp | grep :53 确认。
  • 某些应用和设备内置了自己的 DNS(DNS over HTTPS),不走你的服务器。
  • 过滤规则误杀时,表现为某个网站或 App 功能异常——排查网络问题时记得把它列入怀疑对象。

参考资料

fnOS 非官方中文使用指南,与飞牛官方无隶属关系。