Skip to content
0

Adguard Home去广告

1 序言

事情是这样的,经常被小米腾讯广告骚扰,而且公共 DNS 很容易被污染,所以我就想着弄个 DNS 服务在本地,DNS服务有很多,但是我喜欢 AdGuard Home‌,以后简称 adg。


2 什么是 Adguard Home

AdGuard Hom 是一款开源的全网广告拦截与反跟踪软件,特别适用于家庭网络环境。它通过 DNS 服务器拦截广告、跟踪器和恶意软件,保护用户的隐私和网络安。

/imgURL/blog/10.docker/1004-AdguardHome去广告-01-adg-01.webp

2.1 广告拦

AdGuard Home 能够拦截网站、应用程序和游戏中的广告,保护用户的在线体验不受干。

2.2 隐私保

通过 DNS 层面过滤广告,防止跟踪脚本获取用户的个人信息,保护用户的隐。

2.3 恶意软件防

除了广告和跟踪器,AdGuard Home 还能拦截恶意软件,确保网络环境的安全。

2.4 全局DNS服服

用户可以通过设置网络设备使用 AdGuard Home 的DNS服务,从而保护整个家庭网络的隐私和安全。

2.5 开源特性

AdGuard Home 是开源软件,用户可以根据自己的需求定制规则,实现更精准的拦截。


3 怎么安装 Adguard Home

3.1 OpenWRT 安装 Adguard Home

OpenWRT 要么找有安装好 adg 的固件,如果没有就去下面两个地方下载了手动安装,一个是 arm 一个是 x86。

bash
#x86
https://raw.githubusercontent.com/AUK9527/Are-u-ok/main/x86/all/adguardhome.run
#arm
https://raw.githubusercontent.com/AUK9527/Are-u-ok/refs/heads/main/apps/all/adguardhome.run

上传文件就可以安装了,玩openwrt的人应该都会。

3.2 docker安装 Adguard Home

我更喜欢用这个方法安装,docker 真的很好用。我先把我的 docker 树目录再放出来,方便你修改路径,如果和我一样的路径就不需要修改。

bash
/root根目录
├── mnt
| ├── docker            
|   ├── apps
|      ├── Adguard Home 
|        ├── data        # 数据存储路径
|        ├── conf        # 配置文件路径
|        ├── rule        # rule文件路径
|   ├── docker-compose
|      ├── Adguard Home.yaml

首先我们需要获取以下网卡名称,然后在下面yaml文件中换对应的网卡名称,这一步很重要。

其次我们可以设置自己需要的独立 ip,也就是 docker 里面的 macvlan。

yaml
# 官方文档
# https://hub.docker.com/r/adguard/adguardhome

# 在ssh输入
# ip addr
# 获取到ip那个就是网卡名称,比如br-lan,enp5s0

# ---

name: adguardhome
# 最后编辑时间:2025-08-19
services:
  adguardhome: 
    # 镜像地址
    image: adguard/adguardhome:latest 
    # 容器名称
    container_name: adguardhome  
    # 主机名
    hostname: adguardhome 
    # 路径
    volumes:
      # 数据存储路径
      - /mnt/docker/apps/adguardhome/data:/opt/adguardhome/work  
      # 配置文件路径
      - /mnt/docker/apps/adguardhome/conf:/opt/adguardhome/conf  
      # rule文件路径
      - /mnt/docker/apps/adguardhome/rule:/opt/adguardhome/rule  
    # 网络模式,macvlan独立IP
    networks:
      macvlan_net:
        # 输入独立IP
        ipv4_address: 192.168.x.x
    ports:
      # 需要开放的端口880,881,882,53,853,8853,67,68
      # DNS 基础端口(需同时开放 TCP/UDP)
      - 53:53/tcp        # 标准 DNS 协议端口(TCP,用于大型 DNS 响应)
      - 53:53/udp        # 标准 DNS 协议端口(UDP,常规 DNS 请求)
      
      # 加密 DNS 协议端口
      - 853:853/tcp      # DNS-over-TLS (DoT),加密 DNS 通信
      - 853:853/udp      # DNS-over-QUIC (DoQ),基于 UDP 的低延迟加密协议
      #- 8853:8853/udp    # 备用 DoQ 端口(部分客户端兼容性需求)
      
      # 加密 DNS DoH 协议端口
      - 443:443/tcp
      - 443:443/udp
      
      # 重定向 HTTP WebUI 管理端口
      - 80:80/tcp       # HTTP 管理界面
      - 80:80/udp 
      - 3000:3000/tcp     # WebUI 控制台端口
      - 3000:3000/udp
      
      # 高级功能端口(按需开放)
      #- 67:67/udp        # DHCP 服务端口(若需提供 DHCP 服务)
      #- 68:68/udp        # DHCP 客户端端口
    # 重启策略,总是重启
    restart: always 

# 设置网络,macvlan
networks:
  macvlan_net:
    driver: macvlan
    driver_opts:
      # 指定物理网络接口,linux请用ip addr查询
      parent: enp5s0  
    ipam:
      config:
        # 设置网段/子网掩码
        - subnet: 192.168.x.0/24

3.3 其他安装方法

其他方法略,自我查找。


4 怎么配置 Adguard Home

4.1 非加密上游 DNS 服务器

如图所示,在里面填上DNS。

119.29.29.29
223.5.5.5
223.6.6.6
114.114.114.114
8.8.8.8
8.8.4.4
4.2.2.2
4.2.2.1
1.1.1.1

/imgURL/blog/10.docker/1004-AdguardHome去广告-01-adg-02.webp

4.2 加密上游 DNS 服务器

首先需要去下面链接下载 dns 分流规则,其次用将这个文件上传到路径为 /mnt/docker/apps/adguardhome/rule 里面。

bash
# dns分流上游规则
https://gitee.com/nw177/adg_rule/blob/master/dns-2.0.txt

最后在路径为 /mnt/docker/apps/adguardhome/conf/AdGuardHome.yaml 文件中修改这一行。

bash
# 编辑yaml文件
nano /mnt/docker/apps/adguardhome/conf/AdGuardHome.yaml
# 编辑upstream_dns_file这一行,后面添加文件路径
upstream_dns_file: /opt/adguardhome/rule/dns-2.0.txt

这样重启 adg 的 docker 我们就修改成功了,上游分流 dns 文件。其实如果你会修改这个 yaml 文件我们直接可以修改这个的。

4.3 DNS 设置

打开并行请求,如图所示。

/imgURL/blog/10.docker/1004-AdguardHome去广告-01-adg-03.webp

/imgURL/blog/10.docker/1004-AdguardHome去广告-02-dns-01.webp

/imgURL/blog/10.docker/1004-AdguardHome去广告-02-dns-02.webp

/imgURL/blog/10.docker/1004-AdguardHome去广告-02-dns-03.webp

/imgURL/blog/10.docker/1004-AdguardHome去广告-02-dns-04.webp

/imgURL/blog/10.docker/1004-AdguardHome去广告-02-dns-05.webp

修改黄色框的几个内容,还有填写运营商的 dns。

bash
# 云南电信dns
222.172.200.68
61.166.150.123

# 云南联通dns
221.3.131.11
221.3.131.12

4.4 黑名单设置

/imgURL/blog/10.docker/1004-AdguardHome去广告-02-dns-06.webp

添加黑名单内容。

bash
# 海哥
https://ghfast.top/https://raw.githubusercontent.com/2771936993/HG/main/hg1.txt
# hosts
https://file-git.trli.club/file-hosts/ad-hosts/hosts
# adblock
https://file-git.trli.club/file-hosts/ad-hosts/adblock

4.5 白名单设置

添加白名单内容。

bash
# Domains
https://file-git.trli.club/file-hosts/allow/Domains
# adblock
https://file-git.trli.club/file-hosts/allow/adblock

5 怎么使用 Adguard Home 的 dns

使用很简单,因为是独立 IP,直接在主路由中设置 adg 的 ip 为 dns 就可以了。

我这里以爱快和openwrt为例子,如图所示。

/imgURL/blog/10.docker/1004-AdguardHome去广告-02-dns-07.webp

/imgURL/blog/10.docker/1004-AdguardHome去广告-02-dns-08.webp


6 Adguard Home 的配置文件(直接暴力管饭)

首先只需要上传上游分流规则文件。

其次把里面的加密登陆账号和密码改成你安装时候设置的,这个账号和加密的密码是你注册 adg 时候给的的在你本来的那个 yaml 文件里面找。

最后只需要改一下运营商 dns 就可以。

yaml
http:
  pprof:
    port: 6060
    enabled: false
  address: 0.0.0.0:80
  session_ttl: 720h
users:
  # 登录账号,开始注册的。
  - name: 
  #登录密码,密码是加密的。
    password: 
auth_attempts: 5
block_auth_min: 15
http_proxy: ""
language: ""
theme: auto
dns:
  bind_hosts:
    - 0.0.0.0
  port: 53
  anonymize_client_ip: false
  ratelimit: 20
  ratelimit_subnet_len_ipv4: 24
  ratelimit_subnet_len_ipv6: 56
  ratelimit_whitelist: []
  refuse_any: true
  upstream_dns:
    - https://dns.alidns.com/dns-query
    - https://223.5.5.5/dns-query
  # 修改上游分流规则文件路径  
  upstream_dns_file: /opt/adguardhome/rule/dns-2.0.txt
  bootstrap_dns:
  # 修改运营商dns,也可以用大厂的dns比如腾讯、阿里
  # 这里需要改成你运营商的dns最好
    - 221.3.131.11
    - 221.3.131.12
  fallback_dns: []
  upstream_mode: parallel
  fastest_timeout: 1s
  allowed_clients: []
  disallowed_clients: []
  blocked_hosts:
    - version.bind
    - id.server
    - hostname.bind
  trusted_proxies:
    - 127.0.0.0/8
    - ::1/128
  cache_size: 4194304
  cache_ttl_min: 60
  cache_ttl_max: 600
  cache_optimistic: true
  bogus_nxdomain: []
  aaaa_disabled: false
  enable_dnssec: true
  edns_client_subnet:
    custom_ip: ""
    enabled: true
    use_custom: false
  max_goroutines: 300
  handle_ddr: true
  ipset: []
  ipset_file: ""
  bootstrap_prefer_ipv6: false
  upstream_timeout: 10s
  private_networks: []
  use_private_ptr_resolvers: false
  local_ptr_upstreams: []
  use_dns64: false
  dns64_prefixes: []
  serve_http3: false
  use_http3_upstreams: false
  serve_plain_dns: true
  hostsfile_enabled: true
tls:
  enabled: false
  server_name: ""
  force_https: false
  port_https: 443
  port_dns_over_tls: 853
  port_dns_over_quic: 853
  port_dnscrypt: 0
  dnscrypt_config_file: ""
  allow_unencrypted_doh: false
  certificate_chain: ""
  private_key: ""
  certificate_path: ""
  private_key_path: ""
  strict_sni_check: false
querylog:
  dir_path: ""
  ignored: []
  interval: 2160h
  size_memory: 1000
  enabled: true
  file_enabled: true
statistics:
  dir_path: ""
  ignored: []
  interval: 24h
  enabled: true
filters:
  #黑名单规则
  - enabled: true
    url: https://ghproxy.net/https://raw.githubusercontent.com/qq5460168/666/master/rules.txt
    name: rule2.0
    id: 1737124284
  - enabled: true
    url: https://file-git.trli.club/file-hosts/ad-hosts/hosts
    name: ad-hosts
    id: 1738545601
  - enabled: true
    url: https://file-git.trli.club/file-hosts/ad-hosts/adblock
    name: adblock
    id: 1738545602
whitelist_filters:
  #白名单规则
  - enabled: true
    url: https://file-git.trli.club/file-hosts/allow/Domains
    name: Domains
    id: 1738545604
  - enabled: true
    url: https://file-git.trli.club/file-hosts/allow/adblock
    name: adblock
    id: 1738545605
user_rules: []
dhcp:
  enabled: false
  interface_name: ""
  local_domain_name: lan
  dhcpv4:
    gateway_ip: ""
    subnet_mask: ""
    range_start: ""
    range_end: ""
    lease_duration: 86400
    icmp_timeout_msec: 1000
    options: []
  dhcpv6:
    range_start: ""
    lease_duration: 86400
    ra_slaac_only: false
    ra_allow_slaac: false
filtering:
  blocking_ipv4: ""
  blocking_ipv6: ""
  blocked_services:
    schedule:
      time_zone: UTC
    ids: []
  protection_disabled_until: null
  safe_search:
    enabled: false
    bing: true
    duckduckgo: true
    ecosia: true
    google: true
    pixabay: true
    yandex: true
    youtube: true
  blocking_mode: default
  parental_block_host: family-block.dns.adguard.com
  safebrowsing_block_host: standard-block.dns.adguard.com
  rewrites: []
  safe_fs_patterns:
    - /opt/adguardhome/work/userfilters/*
  safebrowsing_cache_size: 1048576
  safesearch_cache_size: 1048576
  parental_cache_size: 1048576
  cache_time: 30
  filters_update_interval: 24
  blocked_response_ttl: 10
  filtering_enabled: true
  parental_enabled: false
  safebrowsing_enabled: false
  protection_enabled: true
clients:
  runtime_sources:
    whois: true
    arp: true
    rdns: true
    dhcp: true
    hosts: true
  persistent: []
log:
  enabled: true
  file: ""
  max_backups: 0
  max_size: 100
  max_age: 3
  compress: false
  local_time: false
  verbose: false
os:
  group: ""
  user: ""
  rlimit_nofile: 0
schema_version: 29
最近更新