Terminal
  • Menu ▾
    • 关于
    • 博客
    • 项目
    • 飞牛NAS Docker
    • 🎬 影音
    • 🎵 音乐
    • 🧭 导航
  • 关于
  • 博客
  • 项目
  • 飞牛NAS Docker
  • 🎬 影音
  • 🎵 音乐
  • 🧭 导航

为什么需要广告过滤?

浏览器装插件只能过滤网页广告,手机 App、电视、IoT 设备的广告管不了。AdGuard Home 是 DNS 级别的解决方案——在路由器层面拦截广告域名,全网所有设备自动生效。

实际效果:

  • ✅ 手机 App 开屏广告消失
  • ✅ 电视盒子广告过滤
  • ✅ 网页弹窗、追踪器拦截
  • ✅ YouTube 广告减少(配合规则)
  • ✅ 提升网页加载速度,节省带宽

技术原理

设备请求广告域名 → AdGuard Home 拦截 → 返回 0.0.0.0 → 广告加载失败
设备请求正常域名 → AdGuard Home 转发 → 返回真实 IP → 正常访问

部署步骤

第一步:创建项目目录

mkdir -p ~/docker/adguard
cd ~/docker/adguard

第二步:编写 docker-compose.yml

services:
  adguard:
    image: adguard/adguardhome:latest
    container_name: adguard
    restart: unless-stopped
    ports:
      - "53:53/tcp"      # DNS 服务
      - "53:53/udp"      # DNS 服务
      - "3000:3000"      # 管理面板
    volumes:
      - ./work:/opt/adguardhome/work    # 工作数据
      - ./conf:/opt/adguardhome/conf    # 配置文件
    environment:
      - http_proxy=      # OrbStack 代理兼容
      - https_proxy=
      - ALL_PROXY=

第三步:启动容器

docker compose up -d

第四步:初始化设置

  1. 浏览器打开 http://你的NAS-IP:3000
  2. 按向导设置管理员账号密码
  3. DNS 监听端口保持默认 53

第五步:配置上游 DNS

进入 设置 → DNS 设置 → 上游 DNS 服务器,添加:

https://doh.pub/dns-query          # 腾讯 DoH
https://dns.alidns.com/dns-query   # 阿里 DoH
https://doh.360.cn/dns-query       # 360 DoH
https://1.1.1.1/dns-query          # Cloudflare
https://dns.quad9.net/dns-query    # Quad9(安全)

国内优先走腾讯/阿里,速度快;Cloudflare/Quad9 作为备用。

第六步:加载广告过滤规则

进入 过滤器 → DNS 黑名单,添加以下规则:

规则名称地址规则数
Anti-ADhttps://anti-ad.net/easylist.txt12万+
CJX’s Annoyance Listhttps://cjxlist.github.io/cjxlist.txt5万+
AdAway Default Blocklisthttps://adaway.org/hosts.txt5万+
AdRules CNhttps://raw.githubusercontent.com/banbendalao/ADgk/master/ADgk.txt6万+

总计 28万+ 条过滤规则。

第七步:路由器配置

进入路由器管理后台,将 DHCP 的 DNS 服务器 指向 AdGuard Home 所在设备的 IP。

以锐捷路由器为例:

  1. 登录路由器后台
  2. 网络设置 → DHCP 设置
  3. 主 DNS 服务器填 NAS IP(如 192.168.110.10)
  4. 保存并重启路由器

管理面板功能

访问 http://NAS-IP:3000 可以:

功能说明
仪表盘实时查看查询量、拦截率、Top 域名
查询日志查看每个 DNS 请求和拦截状态
黑名单自定义屏蔽域名
白名单误杀域名放行
客户端查看各设备的请求统计
安全设置恶意软件/钓鱼网站拦截

进阶配置

自定义屏蔽规则

在 过滤器 → 自定义过滤规则 中添加:

||ads.example.com^          # 屏蔽整个域名
@@||example.com^            # 白名单放行
||example.com^$third-party  # 只屏蔽第三方请求

开启 DNS-over-HTTPS

在 设置 → DNS 设置 → 加密 DNS 中启用:

  • 监听端口 443
  • 配置 SSL 证书
  • 支持 DoH/DoT/DoQ

按设备差异化策略

在 设置 → 客户端设置 中可以:

  • 为不同设备设置不同过滤规则
  • 某些设备跳过过滤(如 IoT 设备)
  • 按设备查看统计数据

坑

⚠️ OrbStack 代理问题:OrbStack 会注入 http_proxy,必须在 compose 中显式清空,否则容器内网络异常。

⚠️ 端口冲突:如果 Mac 上已有 dnsmasq 或其他 DNS 服务占用 53 端口,需要先停掉或改端口。

⚠️ 路由器 DNS 缓存:修改路由器 DNS 后,设备可能需要重启或等 DHCP 租约过期才生效。可以手动在设备上刷新:

# macOS
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

# Windows
ipconfig /flushdns

验证是否生效

# 测试广告域名是否被拦截
nslookup ads.example.com 192.168.110.10
# 应该返回 0.0.0.0

# 测试正常域名是否能解析
nslookup baidu.com 192.168.110.10
# 应该返回真实 IP
© 2026 Powered by Hugo :: Theme made by panr
--