绿联NAS:搭建AdGuard Home是一种基于网络的广告和跟踪器拦截解决方案

绿联NAS:搭建AdGuard Home是一种基于网络的广告和跟踪器拦截解决方案

写这篇的起因挺巧:跟 BUG 和 AI 斗智斗勇时,我突然发现绿联 UGOS PRO 不再占用 53 端口了,激动坏了。再加上家里老人的手机老被广告和自动跳转骚扰,索性把尘封已久的“国民神器”AdGuard Home 部署上了。

一、项目介绍

AdGuard Home 是一种基于网络的广告和跟踪器拦截解决方案。只需在您的路由器上安装一次,即可覆盖您家庭网络中的所有设备——无需额外的客户端软件。这对于各种经常威胁您隐私的物联网设备尤其重要。

image

image

二、搭建教程

1、打开文件管理器,在docker文件夹创建adguard文件夹;

image

image

2、打开docker,选择项目-创建-填写项目名称adguard,然后会自动带出路径(我已经创建过了所以提示同名);

image

image

3、粘贴compose,然后点击立即部署,等待跑码;

# ============================================================
# AdGuard Home - Docker Compose 配置
# ------------------------------------------------------------
# 用途:DNS 服务器 / 广告拦截 / 家长控制 / DNS-over-HTTPS
# 部署建议目录:
#   /volume1/docker/adguardhome/docker-compose.yml  (绿联/群晖均可)
# 启动:在该目录执行  docker compose up -d
# ============================================================

services:
  # -------- 服务名(仅内部标识,可随意改名)--------
  adguardhome:
    # 镜像:官方 AdGuard Home,latest 为最新稳定版
    # 如需固定版本可用 adguard/adguardhome:v0.107.x(避免自动升级出问题)
    image: adguard/adguardhome:latest

    # 重启策略:always = 无论异常退出还是宿主机重启都会自动拉起
    # 其他可选:no / on-failure[:次数] / unless-stopped
    restart: always

    # ------------------------------------------------------------
    # 容器名
    # ------------------------------------------------------------
    # 注意:Docker 容器名不允许出现空格!
    #       合法字符只有 [a-zA-Z0-9][a-zA-Z0-9_.-],
    #       所以 "adguard home" 会报错:
    #       invalid container name: "adguard home"
    #       这里用 adguardhome(若想更易读可用 adguard-home)
    container_name: adguardhome

    # ------------------------------------------------------------
    # 网络模式:host(关键配置)
    # ------------------------------------------------------------
    # 好处:AdGuard 能拿到真实客户端 IP(否则日志里全是 172.x.x.x 网关 IP)
    # 好处:直接占用宿主机 53/80/443/3000 等端口,无需端口映射
    # 注意:network_mode 与 networks 不能同时使用(会报错)
    #       "network_mode and networks cannot be used together"
    # 副作用:容器与宿主机共享网络栈,端口冲突时容器起不来
    #        例如宿主机已跑 dnsmasq/systemd-resolved 占用 53,需先停用
    network_mode: host

    # ------------------------------------------------------------
    # 数据卷:持久化配置与数据
    # ------------------------------------------------------------
    # 相对路径 = compose 文件所在目录下的 work/ 和 conf/
    # 建议把 compose 放在 /volume1/docker/adguardhome/ 再启动
    # 若用绿联 Docker 界面建项目报路径错误,改绝对路径:
    #   - /volume1/docker/adguardhome/work:/opt/adguardhome/work
    #   - /volume1/docker/adguardhome/conf:/opt/adguardhome/conf
    #
    # ./work  → 容器内 /opt/adguardhome/work(运行时数据/日志/统计)
    # ./conf  → 容器内 /opt/adguardhome/conf(AdGuardHome.yaml 主配置)
    # 建议首次部署后备份 conf/AdGuardHome.yaml,迁移时最省事
    volumes:
      - ./work:/opt/adguardhome/work
      - ./conf:/opt/adguardhome/conf

    # ------------------------------------------------------------
    # 环境变量
    # ------------------------------------------------------------
    # TZ:固定时区为东八区,保证日志时间、统计图按北京时间显示
    #     (不设时容器默认 UTC,日志会差 8 小时)
    # 可用以下命令验证容器内时间:
    #     docker exec adguardhome date
    environment:
      - TZ=Asia/Shanghai

    # ------------------------------------------------------------
    # 内核能力:DNS 相关系统调用权限
    # ------------------------------------------------------------
    # 开启 NET_ADMIN 后,容器内可执行改网络参数、绑定特权端口等操作,
    # 是启用 DNS-over-TLS / DNS-over-QUIC(853 / 784 端口)、
    # 以及部分系统上正常监听 53 端口所必需的。
    # host 模式下依然可以叠加 cap_add,不冲突。
    cap_add:
      - NET_ADMIN

    # ------------------------------------------------------------
    # 资源限制:内存上限 1G
    # ------------------------------------------------------------
    # mem_limit 是非 swarm 模式(docker compose up)下的内存硬上限,
    # 超过会被 OOM Killer 杀掉并按 restart: always 自动重启。
    # 日常使用 AdGuard 一般 100~200M 足够,1G 是较宽裕的上限,
    # 适合过滤规则多、查询量大、启用统计/查询日志的场景。
    # 若宿主是较新的 Docker(Compose V2),也可换用等价的:
    #   deploy:
    #     resources:
    #       limits:
    #         memory: 1G
    mem_limit: 1g

    # (可选)如需限制 CPU 核心数,可解除下面注释
    # cpus: 2.0

4、等待启动后,直接在浏览器访问http://NAS_IP:3000 ;比如我的是http://192.168.1.200:3000;进入引导配置,具体可参考教程;

https://club.ugnas.com/forum.php?mod=viewthread&tid=2565&highlight=adguard

三、使用注意事项

1、绿联最新的版本经测试不在占用53端口,可以不用 macvlan直接host部署了;

2、进入引导配置的时候端口不要使用80端口,比如我是用的11255端口,尽量使用1万以后的端口;

3、国内推荐上游服务器(不要使用DOT地址,会有大量报错,国内对853有封堵):

https://dns.alidns.com/dns-query
https://doh.pub/dns-query
https://doh.onedns.net/dns-query
https://doh-home.onedns.net/dns-query

注:避免使用国外的上有服务器,上网很慢影响体验,经测我这使用的阿里的最快,可以自行测试下。

4、国内推荐Bootstrap DNS服务器:

223.5.5.5
119.29.29.29
114.114.114.114
52.80.66.66
117.50.60.30

注:避免使用国外的Bootstrap DNS服务器,上网很慢影响体验,经测我这使用的阿里的最快,可以自行测试下。

image

image

image

image

注:填写完后一定点击测试上游,有报错的话记得把报错的DOH地址删除再测试都没问题后再点击应用。

5、adguard配置好后,一定一定注意把路由的LAN侧的DNS地址填写NAS的IP,我以我的H3C为例;

image

image

注:此时需要注意一下,你的NAS的IP地址一定是在路由器做过IP和MAC静态绑定的,不然NAS的IP会变,影响解析,并且DNS2一定是一个公共DNS的地址,避免adguard出现问题网络中断。

6、拦截规则黑名单添加;

image

image

实测可用规则地址:

https://ghfast.top/https://raw.githubusercontent.com/privacy-protection-tools/anti-AD/master/anti-ad-easylist.txt
https://ghfast.top/https://github.com/217heidai/adblockfilters/releases/download/rule/adblockdns.txt
https://raw.githubusercontent.com/TG-Twilight/AWAvenue-Ads-Rule/main/AWAvenue-Ads-Rule.txt

7、常规设置(过滤器建议3天,日志建议不超过7天);

image

image

8、其他保持默认即可;拦截情况展示;

image

四、参考文档

1、绿联论坛大佬文章:https://club.ugnas.com/forum.php?mod=viewthread&tid=2565&highlight=adguard

2、adguard home官网:https://adguard.com/zh_cn/adguard-home/overview.html

3、官方文档:https://adguard-dns.io/kb/zh-CN/adguard-home/getting-started

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享