AdguardHome Docker容器化部署及设备配置

家里有linux主机,于是就想到了现在上网的时候经常有太多的网站会有广告,看看能不能通过自建规则减少广告。听说有AdguardHome可以实现这个功能。那么我们来看看如何部署和使用起来。

概述

ADGUARDHOME是一款网络级广告和跟踪器拦截DNS服务器,作为一款开源的隐私保护工具,它能够在网络层面为所有设备提供广告过滤和隐私保护功能,无需在每个设备上单独安装客户端软件。通过Docker容器化部署ADGUARDHOME,可以实现快速部署、环境隔离和版本管理,适用于家庭网络、小型企业网络等多种场景。

PART1 服务端环境准备

Debian,docker,AdguardHome镜像源
主机IP:192.168.5.200

镜像源可以自行查找

编写Docker-compose.yml

services:
  adguardhome:
    image: docker.1ms.run/adguard/adguardhome:v0.107.76
    container_name: adguardhome
    restart: unless-stopped
    # 宿主机目录挂载,确保升级或重启时数据不丢失
    volumes:
      - ./ag_work:/opt/adguardhome/work
      - ./ag_conf:/opt/adguardhome/conf
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "8081:8081/tcp"
      - "443:443/tcp"
      - "443:443/udp"
      - "3000:3000/tcp"

这里因为我本地环境80端口已经启用了,所以把adguardHome的默认80端口修改成8081了。请自行注意

启用命令

sudo docker compose up -d

启动后

dog@debian:~/adguard$ docker ps  |grep adguard
98dd7f0db486   docker.1ms.run/adguard/adguardhome:v0.107.76                                         "/opt/adguardhome/Ad…"   24 hours ago   Up 16 hours             0.0.0.0:53->53/tcp, 0.0.0.0:53->53/udp, [::]:53->53/tcp, [::]:53->53/udp, 80/tcp, 67-68/udp, 0.0.0.0:443->443/tcp, [::]:443->443/tcp, 853/udp, 853/tcp, 3000/udp, 5443/tcp, 0.0.0.0:3000->3000/tcp, [::]:3000->3000/tcp, 0.0.0.0:8081->8081/tcp, 0.0.0.0:443->443/udp, [::]:8081->8081/tcp, [::]:443->443/udp, 5443/udp, 6060/tcp   adguardhome

访问首页,并设置密码

回到首页-设置-DNS设置

设置上游DNS服务器,直接粘贴

https://dns.alidns.com/dns-query
https://doh.pub/dns-query
https://doh.360.cn/dns-query
114.114.114.114
223.5.5.5

Bootstrap DNS 服务器

223.5.5.5
119.29.29.29

点击保存

回到过滤器,自定义过滤规则

通过指定域名进行拦截,demo如下

||dns.weixin.qq.com.cn^

应用即可

PART2 路由器

以中兴路由器为例,网络-配置DNS服务器为服务器端的IP。(我这里是192.168.5.200)

PART3 终端电脑

以win10/win11为例

1.按下 Win + R 键,输入 cmd 并按 Enter 打开命令提示符。
2.输入ipconfig /flushdns 刷新DNS缓存

刷新后,你可以通过以下命令查看当前电脑实际使用的 DNS 服务器地址,确保它确实是你设置的 AdGuardHome 主机 IP


查看效果

通过电脑任意访问一个网站如https://news.qq.com/ 回到查询日志-选择已过滤

参考资料

AdguardHome Docker 容器化部署指南

发表评论