Skip to content
twoone3 edited this page Oct 21, 2024 · 10 revisions

AdGuradHome For Magisk Wiki

本模块默认配置专为中国用户打造,所以本文仅提供中文版
This module is designed for Chinese users by default, so this document is only available in Chinese

简易教程

点击 Release 下载模块
在 Magisk/KernelSU/Apatch 等软件中安装模块,安装过程中弹出的选项选择否即可,重启后无需配置即可实现广告屏蔽

详细教程

1. 安装

本模块仅适用于已经 root 的安卓设备,支持 Magisk/KernelSU/Apatch 等 root 方案
在 Release 页面下载 zip 文件,暂时提供了 arm64 和 armv7 两个版本,一般推荐使用 arm64 版
使用前需在设置里关闭 私人/专用dns,否则模块无法生效
在 Magisk/KernelSU/Apatch 等软件中安装模块,安装时会询问是否禁用 iptables 规则,这里无特殊需求选否即可 对一般用户来说,如果你不懂什么是iptables安装时的选项直接选否,重启后无需配置即可实现广告屏蔽

2. 配置

默认 AdGuradHome 后台地址为 http://127.0.0.1:3000 ,可通过浏览器直接访问,默认账号密码都是 root
在 AdGuradHome 后台可以查看DNS查询统计信息、修改各种DNS配置、查看日志等功能
如果你看腻了纯粹的网页端,也可以使用 AdGuard Home Manager 进行后台管理,UI更讨人喜欢
在更新模块时,用户可使用音量键自行选择是否保留原来的配置文件,即使你选择不保留,也会自动备份原来的配置文件到 /data/adb/agh/backup 目录下

3. 模块开关

本模块默认开机自启,如果需要关闭 AdGuradHome 可以在 Magisk/KernelSU/Apatch 等软件中禁用模块,这个禁用和启用是实时的,也就是说你可以方便地启动和停止模块
模块的状态信息会实时显示在模块的描述中,但在各个模块管理器中需要切换页面刷新才能看到最新状态
当然如果你想用脚本来启动停止也很简单,只需要模拟禁用模块的行为即可,比如 touch /data/adb/modules/AdGuradHome/disable 即可禁用模块,而启用模块则是 rm /data/adb/modules/AdGuradHome/disable 此外,你还可以使用 touch /data/adb/modules/AdGuradHome/disable_iptable 来禁用模块的 iptables DNS 请求 转发规则
实际上模块主要分为两部分,一部分是 AdGuradHome 本身,它实质上是在本地搭建了一个 DNS 服务器,另一部分是 iptables 转发规则,它负责将本机所有53端口出口流量重定向到 AdGuradHome,你可以根据自己的需要进行配置调整

4. 与代理软件共存

代理软件分两种:代理app (如 NekoBox,FlClash) 和 代理模块 (如 box for magisk)

理论上本模块可以与任意代理app兼容,模块会劫持本机所有53端口出口流量,也就是常规DNS查询,只要代理app的DNS配置是普通DNS,就会被重定向到 AdGuradHome
所以你可以将代理app的DNS设为 DoH/DoT 类型的来规避重定向,甚至你可以直接将 DNS 改为 127.0.0.1:5591 这是模块默认 DNS 地址
代理app的 分应用代理 (在 FlClash 里面叫做 访问控制 )很有用,你可以将国内的app选择绕过模式来避免不必要的流量经过代理软件,此时这些绕过的应用也能正常屏蔽广告

而要使用代理模块,请将模块的 iptables 转发规则禁用,在前面的模块开关一节有提到
禁用后模块仅运行 AdGuradHome 本身,它实质上是在本地搭建了一个 DNS 服务器,所以我们将代理模块配置中的上游 DNS 服务器改为 127.0.0.1:5591 即可让代理软件的所有 DNS 查询都经过 AdGuradHome 进行广告屏蔽 以下给出了Mihomo的配置示例:

dns:
  enable: true
  # 可选值 true/false
  # 是否解析 IPV6, 如为 false, 则回应 AAAA 的空解析
  ipv6: true

  # 默认 dns, 用于解析 DNS 服务器 的域名
  # 必须为 ip, 可为加密 dns
  default-nameserver:
    - 127.0.0.1:5591

  # dns 服务监听
  listen: 0.0.0.0:1053
  use-hosts: true

  # 可选值 fake-ip / redir-host
  # Clash 的 dns 处理模式
  enhanced-mode: fake-ip

  # 格式为 ip/掩码
  # fakeip 下的 IP 段设置,tun 网卡的默认 ip 也使用此值
  fake-ip-range: 198.18.0.1/16

  # fakeip 过滤,以下地址不会下发 fakeip 映射用于连接
  fake-ip-filter:
    - '*.lan'

  # 默认的域名解析服务器,如不配置 fallback/proxy-server-nameserver , 则所有域名都由 nameserver 解析
  nameserver:
    - 127.0.0.1:5591

FAQ

Q: 为什么模块无法屏蔽全部广告? A: 模块通过转发 53 端口的 DNS 请求来实现广告屏蔽,因此无法屏蔽通过 HTTPS 传输的广告,以及与正常内容同域名的广告,如 知乎,Youtube 等,好在大部分广告还是优先使用 53 端口的 DNS 请求。 Q: 为什么不接入 KernelSU 的 WebUI? A: 由于 KernelSU 的 WebUI 在无法显示确认弹窗,导致 AdGuardHome 管理端一些功能无法使用,因此暂时不接入

结尾的话

恭喜你阅读完了本 Wiki,如果有什么好的建议,可加入Telegram群来讨论,另外本模块是 秋风广告规则 官方模块,秋风规则是轻量、精准、高效的广告规则,也请有能力的朋友多多贡献

Clone this wiki locally