├── .gitignore
├── src
├── META-INF
│ └── com
│ │ └── google
│ │ └── android
│ │ ├── updater-script
│ │ └── update-binary
├── uninstall.sh
├── webroot
│ └── index.html
├── action.sh
├── service.sh
├── module.prop
├── scripts
│ ├── inotify.sh
│ ├── base.sh
│ ├── debug.sh
│ ├── tool.sh
│ └── iptables.sh
├── settings.conf
├── customize.sh
└── bin
│ ├── AdGuardHome.yaml
│ └── data
│ └── filters
│ └── 1732747955.txt
├── .gitattributes
├── version.json
├── changelog.md
├── LICENSE
├── README.md
├── README_en.md
├── pack.ps1
└── docs
└── index.md
/.gitignore:
--------------------------------------------------------------------------------
1 | cache/
2 |
--------------------------------------------------------------------------------
/src/META-INF/com/google/android/updater-script:
--------------------------------------------------------------------------------
1 | #MAGISK
2 |
--------------------------------------------------------------------------------
/src/uninstall.sh:
--------------------------------------------------------------------------------
1 | [ -d "/data/adb/agh" ] && rm -rf "/data/adb/agh"
2 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | * text eol=lf
2 | *.ps1 text eol=crlf
3 | *.bat text eol=crlf
4 |
--------------------------------------------------------------------------------
/src/webroot/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/action.sh:
--------------------------------------------------------------------------------
1 | . /data/adb/agh/settings.conf
2 |
3 | $SCRIPT_DIR/tool.sh toggle
4 |
5 | sleep 1
6 |
--------------------------------------------------------------------------------
/src/service.sh:
--------------------------------------------------------------------------------
1 | until [ $(getprop init.svc.bootanim) = "stopped" ]; do
2 | sleep 12
3 | done
4 |
5 | /data/adb/agh/scripts/tool.sh start
6 |
7 | inotifyd /data/adb/agh/scripts/inotify.sh /data/adb/modules/AdGuardHome:d,n &
8 |
--------------------------------------------------------------------------------
/src/module.prop:
--------------------------------------------------------------------------------
1 | id=AdGuardHome
2 | name=AdGuardHome for Root
3 | version=20251217
4 | versionCode=45
5 | author=twoone3
6 | description=none
7 | updateJson=https://raw.githubusercontent.com/twoone-3/AdGuardHomeForRoot/main/version.json
--------------------------------------------------------------------------------
/version.json:
--------------------------------------------------------------------------------
1 | {
2 | "versionCode": 45,
3 | "version": "20251217",
4 | "zipUrl": "https://github.com/twoone-3/AdGuardHomeForRoot/releases/latest/download/AdGuardHomeForRoot_arm64.zip",
5 | "changelog": "https://raw.githubusercontent.com/twoone-3/AdGuardHomeForRoot/main/changelog.md"
6 | }
7 |
--------------------------------------------------------------------------------
/src/scripts/inotify.sh:
--------------------------------------------------------------------------------
1 | . /data/adb/agh/settings.conf
2 |
3 | readonly EVENTS=$1
4 | readonly MONITOR_DIR=$2
5 | readonly MONITOR_FILE=$3
6 |
7 | if [ "${MONITOR_FILE}" = "disable" ]; then
8 | if [ "${EVENTS}" = "d" ]; then
9 | $SCRIPT_DIR/tool.sh start
10 | elif [ "${EVENTS}" = "n" ]; then
11 | $SCRIPT_DIR/tool.sh stop
12 | fi
13 | fi
14 |
--------------------------------------------------------------------------------
/changelog.md:
--------------------------------------------------------------------------------
1 | # Changelog
2 |
3 | - 例行更新广告规则
4 | - Routine update of ad rules
5 | - 更新 AdGuard Home 至 v0.107.71
6 | - Updated AdGuard Home to v0.107.71
7 | - 更新 AdGuardHome.yaml schema 31 -> 32
8 | - Updated AdGuardHome.yaml schema 31 -> 32
9 | - 更换为使用域名的 DoH 服务器
10 | - Switched to DoH servers using domain names
11 | - 移除了 --no-check-update 参数
12 | - Removed the --no-check-update parameter
--------------------------------------------------------------------------------
/src/META-INF/com/google/android/update-binary:
--------------------------------------------------------------------------------
1 | #!/sbin/sh
2 |
3 | #################
4 | # Initialization
5 | #################
6 |
7 | umask 022
8 |
9 | # echo before loading util_functions
10 | ui_print() { echo "$1"; }
11 |
12 | require_new_magisk() {
13 | ui_print "*******************************"
14 | ui_print " 请升级安装 Magisk v20.4或以上! "
15 | ui_print "*******************************"
16 | exit 1
17 | }
18 |
19 | #########################
20 | # Load util_functions.sh
21 | #########################
22 |
23 | OUTFD=$2
24 | ZIPFILE=$3
25 |
26 | mount /data 2>/dev/null
27 |
28 | [ -f /data/adb/magisk/util_functions.sh ] || require_new_magisk
29 | . /data/adb/magisk/util_functions.sh
30 | [ $MAGISK_VER_CODE -lt 20400 ] && require_new_magisk
31 |
32 | install_module
33 | exit 0
--------------------------------------------------------------------------------
/src/settings.conf:
--------------------------------------------------------------------------------
1 | # 是否启用内置的 iptables 规则
2 | # Whether to enable the built-in iptables rules
3 | enable_iptables=true
4 |
5 | # 阻断 ipv6 的 DNS 请求,仅在 enable_iptables=true 时生效
6 | # Block DNS requests for ipv6, only effective when enable_iptables=true
7 | block_ipv6_dns=true
8 |
9 | # 重定向端口,请与 AdGuardHome 的设置保持一致
10 | # Redirect port, please keep it consistent with AdGuardHome settings
11 | redir_port=5591
12 |
13 | # 用户组和用户,用于绕过 AdGuardHome 本身
14 | # User group and user, used to bypass AdGuardHome itself
15 | adg_user=root
16 | adg_group=net_raw
17 |
18 | # 绕过目的地址列表,用空格分隔
19 | # list of destination addresses to bypass, separated by spaces
20 | ignore_dest_list=""
21 |
22 | # 绕过源地址列表,用空格分隔
23 | # list of source addresses to bypass, separated by spaces
24 | ignore_src_list=""
25 |
26 | # 文件路径,请勿修改
27 | # File paths, do not modify
28 | readonly AGH_DIR="/data/adb/agh"
29 | readonly BIN_DIR="$AGH_DIR/bin"
30 | readonly SCRIPT_DIR="$AGH_DIR/scripts"
31 | readonly PID_FILE="$AGH_DIR/bin/agh.pid"
32 | readonly MOD_PATH="/data/adb/modules/AdGuardHome"
33 |
--------------------------------------------------------------------------------
/src/scripts/base.sh:
--------------------------------------------------------------------------------
1 | # add busybox to PATH
2 | [ -d "/data/adb/magisk" ] && export PATH="/data/adb/magisk:$PATH"
3 | [ -d "/data/adb/ksu/bin" ] && export PATH="/data/adb/ksu/bin:$PATH"
4 | [ -d "/data/adb/ap/bin" ] && export PATH="/data/adb/ap/bin:$PATH"
5 |
6 | # most of the users are Chinese, so set default language to Chinese
7 | language="zh"
8 |
9 | # try to get the system language
10 | locale=$(getprop persist.sys.locale || getprop ro.product.locale || getprop persist.sys.language)
11 |
12 | # if the system language is English, set language to English
13 | if echo "$locale" | grep -qi "en"; then
14 | language="en"
15 | fi
16 |
17 | function log() {
18 | local timestamp=$(date "+%Y-%m-%d %H:%M:%S")
19 | local str
20 | [ "$language" = "en" ] && str="$timestamp $1" || str="$timestamp $2"
21 | echo "$str" | tee -a "$AGH_DIR/history.log"
22 | }
23 |
24 | function update_description() {
25 | local description
26 | [ "$language" = "en" ] && description="$1" || description="$2"
27 | sed -i "/^description=/c\description=$description" "$MOD_PATH/module.prop"
28 | }
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2025 twoone3
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/src/scripts/debug.sh:
--------------------------------------------------------------------------------
1 | #!/system/bin/sh
2 |
3 | AGH_DIR="/data/adb/agh"
4 | LOG="$AGH_DIR/debug.log"
5 |
6 | {
7 | echo "==== AdGuardHome Debug Log ===="
8 | date
9 | echo
10 |
11 | echo "== System Info =="
12 | uname -a
13 | echo "Android Version: $(getprop ro.build.version.release)"
14 | echo "Device: $(getprop ro.product.model)"
15 | echo "Architecture: $(uname -m)"
16 | echo
17 |
18 | echo "== AdGuardHome Version =="
19 | if [ -f "$AGH_DIR/bin/AdGuardHome" ]; then
20 | "$AGH_DIR/bin/AdGuardHome" version
21 | else
22 | echo "AdGuardHome binary not found"
23 | fi
24 | echo
25 |
26 | echo "== Root Method =="
27 | if [ -d "/data/adb/magisk" ]; then
28 | echo "Magisk"
29 | elif [ -d "/data/adb/ksu" ]; then
30 | echo "KernelSU"
31 | elif [ -d "/data/adb/ap" ]; then
32 | echo "APatch"
33 | else
34 | echo "Unknown"
35 | fi
36 | echo
37 |
38 | echo "== BusyBox Version =="
39 | [ -d "/data/adb/magisk" ] && export PATH="/data/adb/magisk:$PATH"
40 | [ -d "/data/adb/ksu/bin" ] && export PATH="/data/adb/ksu/bin:$PATH"
41 | [ -d "/data/adb/ap/bin" ] && export PATH="/data/adb/ap/bin:$PATH"
42 | if command -v busybox >/dev/null 2>&1; then
43 | busybox --version
44 | else
45 | echo "BusyBox not found"
46 | fi
47 |
48 | echo "== AGH Directory Listing =="
49 | ls -lR "$AGH_DIR"
50 | echo
51 |
52 | echo "== AGH Bin Log (last 30 lines) =="
53 | tail -n 30 "$AGH_DIR/bin.log" 2>/dev/null
54 | echo
55 |
56 | echo "== AGH Settings =="
57 | cat "$AGH_DIR/settings.conf" 2>/dev/null
58 | echo
59 |
60 | echo "== AGH PID File =="
61 | cat "$AGH_DIR/bin/agh.pid" 2>/dev/null
62 | echo
63 |
64 | echo "== Running Processes (AdGuardHome) =="
65 | ps -A | grep AdGuardHome
66 | echo
67 |
68 | echo "== iptables -t nat -L -n -v =="
69 | iptables -t nat -L -n -v
70 | echo
71 |
72 | echo "== ip6tables -t filter -L -n -v =="
73 | ip6tables -t filter -L -n -v
74 | echo
75 |
76 | echo "== Network Interfaces =="
77 | ip addr
78 | echo
79 |
80 | } >"$LOG" 2>&1
81 |
82 | echo "Debug info collected in $LOG"
83 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # AdGuardHome for Root
2 |
3 | [English](README_en.md) | 简体中文
4 |
5 | 
6 | 
7 | 
8 | 
9 | [](https://t.me/+Q3Ur_HCYdM0xM2I1)
10 | [](https://t.me/+Q3Ur_HCYdM0xM2I1)
11 |
12 | 关注我们的频道获取最新消息,或加入我们的群组进行讨论!
13 |
14 | ## 简介
15 |
16 | - 本模块是一个在安卓设备上运行 [AdGuardHome](https://github.com/AdguardTeam/AdGuardHome) 的模块,提供了一个本地 DNS 服务器,能够屏蔽广告、恶意软件和跟踪器。
17 | - 它可以作为一个本地广告拦截模块使用,也可以通过调整配置文件,转变为一个独立运行的 AdGuardHome 工具。
18 | - 该模块支持 Magisk、KernelSU 和 APatch 等多种安装方式,适用于大多数 Android 设备。
19 | - 该模块的设计初衷是为了提供一个轻量级的广告拦截解决方案,避免了使用 VPN 的复杂性和性能损失。
20 | - 它可以与其他代理软件(如 [NekoBox](https://github.com/MatsuriDayo/NekoBoxForAndroid)、[FlClash](https://github.com/chen08209/FlClash)、[box for magisk](https://github.com/taamarin/box_for_magisk)、[akashaProxy](https://github.com/akashaProxy/akashaProxy) 等)共存,提供更好的隐私保护和网络安全。
21 |
22 | ## 特性
23 |
24 | - 可选将本机 DNS 请求转发到本地 AdGuardHome 服务器
25 | - 使用 [秋风广告规则](https://github.com/TG-Twilight/AWAvenue-Ads-Rule) 过滤广告,轻量,省电,少误杀
26 | - 可从 访问 AdGuardHome 控制面板,支持查询统计,修改 DNS 上游服务器以及自定义规则等功能
27 |
28 | ## 教程
29 |
30 | 1. 前往 [Release](https://github.com/twoone-3/AdGuardHomeForRoot/releases/latest) 页面下载模块
31 | 2. 检查 Android 设置 -> 网络和互联网 -> 高级 -> 私人 DNS,确保 `私人 DNS` 关闭
32 | 3. 在 root 管理器中安装模块,重启设备
33 | 4. 若看到模块运行成功的提示,则可以访问 进入 AdGuardHome 后台,默认用户密码 root/root
34 | 5. 若需高级使用教程和常见问题解答,请访问 [docs](/docs/index.md)。
35 |
36 | ## 鸣谢
37 |
38 | - [AWAwenue Ads Rule](https://github.com/TG-Twilight/AWAvenue-Ads-Rule)
39 | - [AdguardHome_magisk](https://github.com/410154425/AdGuardHome_magisk)
40 | - [akashaProxy](https://github.com/ModuleList/akashaProxy)
41 | - [box_for_magisk](https://github.com/taamarin/box_for_magisk)
42 |
43 | > 特别感谢赞助:
44 | >
45 | > - y******a - 200
46 | > - 偶****** - 10
47 |
--------------------------------------------------------------------------------
/src/scripts/tool.sh:
--------------------------------------------------------------------------------
1 | . /data/adb/agh/settings.conf
2 | . /data/adb/agh/scripts/base.sh
3 |
4 | start_adguardhome() {
5 | # check if AdGuardHome is already running
6 | if [ -f "$PID_FILE" ] && ps | grep -w "$adg_pid" | grep -q "AdGuardHome"; then
7 | log "AdGuardHome is already running" "AdGuardHome 已经在运行"
8 | exit 0
9 | fi
10 |
11 | # to fix https://github.com/AdguardTeam/AdGuardHome/issues/7002
12 | export SSL_CERT_DIR="/system/etc/security/cacerts/"
13 | # set timezone to Shanghai
14 | export TZ="Asia/Shanghai"
15 |
16 | # backup old log and overwrite new log
17 | if [ -f "$AGH_DIR/bin.log" ]; then
18 | mv "$AGH_DIR/bin.log" "$AGH_DIR/bin.log.bak"
19 | fi
20 |
21 | # run binary
22 | busybox setuidgid "$adg_user:$adg_group" "$BIN_DIR/AdGuardHome" >"$AGH_DIR/bin.log" 2>&1 &
23 | adg_pid=$!
24 |
25 | # check if AdGuardHome started successfully
26 | if ps | grep -w "$adg_pid" | grep -q "AdGuardHome"; then
27 | echo "$adg_pid" >"$PID_FILE"
28 | # check if iptables is enabled
29 | if [ "$enable_iptables" = true ]; then
30 | $SCRIPT_DIR/iptables.sh enable
31 | log "🥰 started PID: $adg_pid iptables: enabled" "🥰 启动成功 PID: $adg_pid iptables 已启用"
32 | update_description "🥰 Started PID: $adg_pid iptables: enabled" "🥰 启动成功 PID: $adg_pid iptables 已启用"
33 | else
34 | log "🥰 started PID: $adg_pid iptables: disabled" "🥰 启动成功 PID: $adg_pid iptables 已禁用"
35 | update_description "🥰 Started PID: $adg_pid iptables: disabled" "🥰 启动成功 PID: $adg_pid iptables 已禁用"
36 | fi
37 | else
38 | log "😭 Error occurred, check logs for details" "😭 出现错误,请检查日志以获取详细信息"
39 | update_description "😭 Error occurred, check logs for details" "😭 出现错误,请检查日志以获取详细信息"
40 | $SCRIPT_DIR/debug.sh
41 | exit 1
42 | fi
43 | }
44 |
45 | stop_adguardhome() {
46 | if [ -f "$PID_FILE" ]; then
47 | pid=$(cat "$PID_FILE")
48 | kill $pid || kill -9 $pid
49 | rm "$PID_FILE"
50 | log "AdGuardHome stopped (PID: $pid)" "AdGuardHome 已停止 (PID: $pid)"
51 | else
52 | pkill -f "AdGuardHome" || pkill -9 -f "AdGuardHome"
53 | log "AdGuardHome force stopped" "AdGuardHome 强制停止"
54 | fi
55 | update_description "❌ Stopped" "❌ 已停止"
56 | $SCRIPT_DIR/iptables.sh disable
57 | }
58 |
59 | toggle_adguardhome() {
60 | if [ -f "$PID_FILE" ] && ps | grep -w "$(cat $PID_FILE)" | grep -q "AdGuardHome"; then
61 | stop_adguardhome
62 | else
63 | start_adguardhome
64 | fi
65 | }
66 |
67 | case "$1" in
68 | start)
69 | start_adguardhome
70 | ;;
71 | stop)
72 | stop_adguardhome
73 | ;;
74 | toggle)
75 | toggle_adguardhome
76 | ;;
77 | *)
78 | echo "Usage: $0 {start|stop|toggle}"
79 | exit 1
80 | ;;
81 | esac
82 |
--------------------------------------------------------------------------------
/README_en.md:
--------------------------------------------------------------------------------
1 | # AdGuardHome for Root
2 |
3 | English | [简体中文](README.md)
4 |
5 | 
6 | 
7 | 
8 | 
9 | [](https://t.me/+Q3Ur_HCYdM0xM2I1)
10 | [](https://t.me/+Q3Ur_HCYdM0xM2I1)
11 |
12 | Follow our channel for the latest news, or join our group for discussion!
13 |
14 | ## Introduction
15 |
16 | - This module is a module that runs [AdGuardHome](https://github.com/AdguardTeam/AdGuardHome) on Android devices, providing a local DNS server that can block ads, malware, and trackers.
17 | - It can be used as a local ad-blocking module or transformed into a standalone AdGuardHome tool by adjusting the configuration file.
18 | - The module supports multiple installation methods, including Magisk, KernelSU, and APatch, making it compatible with most Android devices.
19 | - The design of this module aims to provide a lightweight ad-blocking solution, avoiding the complexity and performance loss associated with using VPNs.
20 | - It can coexist with other proxy software (such as [NekoBox](https://github.com/MatsuriDayo/NekoBoxForAndroid), [FlClash](https://github.com/chen08209/FlClash), [box for magisk](https://github.com/taamarin/box_for_magisk), [akashaProxy](https://github.com/akashaProxy/akashaProxy)), providing better privacy protection and network security.
21 |
22 | ## Features
23 |
24 | - Optionally forward local DNS requests to the local AdGuardHome server
25 | - Filter ads using [AWAvenue-Ads-Rule](https://github.com/TG-Twilight/AWAvenue-Ads-Rule) for lightweight, power-saving, and fewer false positives
26 | - Access the AdGuardHome control panel from , supporting query statistics, modifying DNS upstream servers, and custom rules, etc.
27 |
28 | ## Tutorial
29 |
30 | 1. Go to the [Release](https://github.com/twoone-3/AdGuardHomeForRoot/releases/latest) page to download the module
31 | 2. Check Android Settings -> Network & Internet -> Advanced -> Private DNS, ensure `Private DNS` is turned off
32 | 3. Install the module in the root manager and reboot the device
33 | 4. If you see a successful module running prompt, you can access to enter the AdGuardHome backend, default username and password are root/root
34 | 5. For advanced usage tutorials and FAQs, please visit [docs](/docs/index.md).
35 |
36 | ## Acknowledgments
37 |
38 | - [AWAwenue Ads Rule](https://github.com/TG-Twilight/AWAvenue-Ads-Rule)
39 | - [AdguardHome_magisk](https://github.com/410154425/AdGuardHome_magisk)
40 | - [akashaProxy](https://github.com/ModuleList/akashaProxy)
41 | - [box_for_magisk](https://github.com/taamarin/box_for_magisk)
42 |
43 | > Special thanks to sponsors:
44 | >
45 | > - y******a - 200
46 | > - 偶****** - 10
47 |
--------------------------------------------------------------------------------
/src/scripts/iptables.sh:
--------------------------------------------------------------------------------
1 | . /data/adb/agh/settings.conf
2 | . /data/adb/agh/scripts/base.sh
3 |
4 | iptables_w="iptables -w 64"
5 | ip6tables_w="ip6tables -w 64"
6 |
7 | enable_iptables() {
8 | if $iptables_w -t nat -L ADGUARD_REDIRECT_DNS >/dev/null 2>&1; then
9 | log "ADGUARD_REDIRECT_DNS chain already exists" "ADGUARD_REDIRECT_DNS 链已经存在"
10 | return 0
11 | fi
12 |
13 | log "Creating ADGUARD_REDIRECT_DNS chain and adding rules" "创建 ADGUARD_REDIRECT_DNS 链并添加规则"
14 | $iptables_w -t nat -N ADGUARD_REDIRECT_DNS || return 1
15 | $iptables_w -t nat -A ADGUARD_REDIRECT_DNS -m owner --uid-owner $adg_user --gid-owner $adg_group -j RETURN || return 1
16 |
17 | for subnet in $ignore_dest_list; do
18 | $iptables_w -t nat -A ADGUARD_REDIRECT_DNS -d $subnet -j RETURN || return 1
19 | done
20 |
21 | for subnet in $ignore_src_list; do
22 | $iptables_w -t nat -A ADGUARD_REDIRECT_DNS -s $subnet -j RETURN || return 1
23 | done
24 |
25 | $iptables_w -t nat -A ADGUARD_REDIRECT_DNS -p udp --dport 53 -j REDIRECT --to-ports $redir_port || return 1
26 | $iptables_w -t nat -A ADGUARD_REDIRECT_DNS -p tcp --dport 53 -j REDIRECT --to-ports $redir_port || return 1
27 | $iptables_w -t nat -I OUTPUT -j ADGUARD_REDIRECT_DNS || return 1
28 |
29 | log "Applied iptables rules successfully" "成功应用 iptables 规则"
30 | }
31 |
32 | disable_iptables() {
33 | if ! $iptables_w -t nat -L ADGUARD_REDIRECT_DNS >/dev/null 2>&1; then
34 | log "ADGUARD_REDIRECT_DNS chain does not exist" "ADGUARD_REDIRECT_DNS 链不存在"
35 | return 0
36 | fi
37 |
38 | log "Deleting ADGUARD_REDIRECT_DNS chain and rules" "删除 ADGUARD_REDIRECT_DNS 链及规则"
39 | $iptables_w -t nat -D OUTPUT -j ADGUARD_REDIRECT_DNS || return 1
40 | $iptables_w -t nat -F ADGUARD_REDIRECT_DNS || return 1
41 | $iptables_w -t nat -X ADGUARD_REDIRECT_DNS || return 1
42 | }
43 |
44 | add_block_ipv6_dns() {
45 | if $ip6tables_w -t filter -L ADGUARD_BLOCK_DNS >/dev/null 2>&1; then
46 | log "ADGUARD_BLOCK_DNS chain already exists" "ADGUARD_BLOCK_DNS 链已经存在"
47 | return 0
48 | fi
49 |
50 | log "Creating ADGUARD_BLOCK_DNS chain and adding rules" "创建 ADGUARD_BLOCK_DNS 链并添加规则"
51 | $ip6tables_w -t filter -N ADGUARD_BLOCK_DNS || return 1
52 | $ip6tables_w -t filter -A ADGUARD_BLOCK_DNS -p udp --dport 53 -j DROP || return 1
53 | $ip6tables_w -t filter -A ADGUARD_BLOCK_DNS -p tcp --dport 53 -j DROP || return 1
54 | $ip6tables_w -t filter -I OUTPUT -j ADGUARD_BLOCK_DNS || return 1
55 |
56 | log "Applied ipv6 iptables rules successfully" "成功应用 ipv6 iptables 规则"
57 | }
58 |
59 | del_block_ipv6_dns() {
60 | if ! $ip6tables_w -t filter -L ADGUARD_BLOCK_DNS >/dev/null 2>&1; then
61 | log "ADGUARD_BLOCK_DNS chain does not exist" "ADGUARD_BLOCK_DNS 链不存在"
62 | return 0
63 | fi
64 |
65 | log "Deleting ADGUARD_BLOCK_DNS chain and rules" "删除 ADGUARD_BLOCK_DNS 链及规则"
66 | $ip6tables_w -t filter -F ADGUARD_BLOCK_DNS || return 1
67 | $ip6tables_w -t filter -D OUTPUT -j ADGUARD_BLOCK_DNS || return 1
68 | $ip6tables_w -t filter -X ADGUARD_BLOCK_DNS || return 1
69 | }
70 |
71 | case "$1" in
72 | enable)
73 | log "Enabling iptables and ipv6 DNS blocking if configured" "启用 iptables 和 ipv6 DNS 阻断(如果已配置)"
74 | enable_iptables || exit 1
75 | [ "$block_ipv6_dns" = true ] && add_block_ipv6_dns || exit 1
76 | ;;
77 | disable)
78 | log "Disabling iptables and ipv6 DNS blocking" "禁用 iptables 和 ipv6 DNS 阻断"
79 | disable_iptables || exit 1
80 | del_block_ipv6_dns || exit 1
81 | ;;
82 | *)
83 | echo "Usage: $0 {enable|disable}"
84 | exit 1
85 | ;;
86 | esac
87 |
--------------------------------------------------------------------------------
/pack.ps1:
--------------------------------------------------------------------------------
1 | # 定义下载 URL 和路径变量
2 | $CacheDir = "$PSScriptRoot\cache"
3 | $UrlWitchCachePath = @{
4 | "https://github.com/AdguardTeam/AdGuardHome/releases/latest/download/AdGuardHome_linux_arm64.tar.gz" = "$CacheDir\AdGuardHome_linux_arm64.tar.gz"
5 | "https://github.com/AdguardTeam/AdGuardHome/releases/latest/download/AdGuardHome_linux_armv7.tar.gz" = "$CacheDir\AdGuardHome_linux_armv7.tar.gz"
6 | }
7 |
8 | # 创建缓存目录
9 | if (-Not (Test-Path -Path $CacheDir)) {
10 | Write-Host "Creating cache directory..."
11 | New-Item -Path $CacheDir -ItemType Directory
12 | }
13 |
14 | # 下载文件,有缓存时不再下载
15 | Write-Host "Downloading AdGuardHome..."
16 | foreach ($url in $UrlWitchCachePath.Keys) {
17 | $CachePath = $UrlWitchCachePath[$url]
18 | if (-Not (Test-Path -Path $CachePath)) {
19 | Write-Host "Downloading $url..."
20 | Invoke-WebRequest -Uri $url -OutFile $CachePath
21 | if ($?) {
22 | Write-Host "Download completed successfully."
23 | }
24 | else {
25 | Write-Host "Download failed. Exiting..."
26 | exit 1
27 | }
28 | }
29 | else {
30 | Write-Host "File already exists in cache. Skipping download."
31 | }
32 | }
33 |
34 | # 使用 tar 解压文件
35 | Write-Host "Extracting AdGuardHome..."
36 | foreach ($url in $UrlWitchCachePath.Keys) {
37 | $CachePath = $UrlWitchCachePath[$url]
38 | if ($CachePath -match 'AdGuardHome_linux_(arm64|armv7)\.tar\.gz$') {
39 | $ExtractDir = "./cache/" + $matches[1]
40 | }
41 | else {
42 | throw "Invalid file path: $CachePath"
43 | }
44 | if (-Not (Test-Path -Path $ExtractDir)) {
45 | New-Item -Path $ExtractDir -ItemType Directory
46 | Write-Host "Extracting $CachePath..."
47 | tar -xzf $CachePath -C $ExtractDir
48 | if ($?) {
49 | Write-Host "Extraction completed successfully."
50 | }
51 | else {
52 | Write-Host "Extraction failed"
53 | exit 1
54 | }
55 | }
56 | }
57 |
58 | # 给项目打包,使用 7-Zip 压缩 zip
59 | Write-Host "Packing AdGuardHome..."
60 | $OutputPathArm64 = "$CacheDir\AdGuardHomeForRoot_arm64.zip"
61 | $OutputPathArmv7 = "$CacheDir\AdGuardHomeForRoot_armv7.zip"
62 | if (Test-Path -Path $OutputPathArm64) {
63 | Remove-Item -Path $OutputPathArm64
64 | }
65 | if (Test-Path -Path $OutputPathArmv7) {
66 | Remove-Item -Path $OutputPathArmv7
67 | }
68 |
69 | # 设置项目根目录
70 | $ProjectRoot = "$PSScriptRoot\src"
71 | $env:PATH += ";C:\Program Files\7-Zip"
72 |
73 | # pack arm64
74 | 7z a -tzip $OutputPathArm64 "$ProjectRoot\*.sh"
75 | 7z a -tzip $OutputPathArm64 "$ProjectRoot\settings.conf"
76 | 7z a -tzip $OutputPathArm64 "$ProjectRoot\module.prop"
77 | 7z a -tzip $OutputPathArm64 "$ProjectRoot\META-INF"
78 | 7z a -tzip $OutputPathArm64 "$ProjectRoot\scripts"
79 | 7z a -tzip $OutputPathArm64 "$ProjectRoot\webroot"
80 | 7z a -tzip $OutputPathArm64 "$ProjectRoot\bin\"
81 | 7z a -tzip $OutputPathArm64 "$CacheDir\arm64\AdGuardHome\AdGuardHome"
82 | 7z rn $OutputPathArm64 "AdGuardHome" "bin/AdGuardHome"
83 |
84 | # pack armv7
85 | 7z a -tzip $OutputPathArmv7 "$ProjectRoot\*.sh"
86 | 7z a -tzip $OutputPathArmv7 "$ProjectRoot\settings.conf"
87 | 7z a -tzip $OutputPathArmv7 "$ProjectRoot\module.prop"
88 | 7z a -tzip $OutputPathArmv7 "$ProjectRoot\META-INF"
89 | 7z a -tzip $OutputPathArmv7 "$ProjectRoot\scripts"
90 | 7z a -tzip $OutputPathArmv7 "$ProjectRoot\webroot"
91 | 7z a -tzip $OutputPathArmv7 "$ProjectRoot\bin\"
92 | 7z a -tzip $OutputPathArmv7 "$CacheDir\armv7\AdGuardHome\AdGuardHome"
93 | 7z rn $OutputPathArmv7 "AdGuardHome" "bin/AdGuardHome"
94 |
95 | Write-Host "Packing completed successfully."
--------------------------------------------------------------------------------
/src/customize.sh:
--------------------------------------------------------------------------------
1 | SKIPUNZIP=1
2 |
3 | # most of the users are Chinese, so set default language to Chinese
4 | language="zh"
5 |
6 | # try to get the system language
7 | locale=$(getprop persist.sys.locale || getprop ro.product.locale || getprop persist.sys.language)
8 |
9 | # if the system language is English, set language to English
10 | if echo "$locale" | grep -qi "en"; then
11 | language="en"
12 | fi
13 |
14 | function info() {
15 | [ "$language" = "en" ] && ui_print "$1" || ui_print "$2"
16 | }
17 |
18 | function error() {
19 | [ "$language" = "en" ] && abort "$1" || abort "$2"
20 | }
21 |
22 | info "- 🚀 Installing AdGuardHome for $ARCH" "- 🚀 开始安装 AdGuardHome for $ARCH"
23 |
24 | AGH_DIR="/data/adb/agh"
25 | BIN_DIR="$AGH_DIR/bin"
26 | SCRIPT_DIR="$AGH_DIR/scripts"
27 | PID_FILE="$AGH_DIR/bin/agh.pid"
28 |
29 | info "- 📦 Extracting module basic files..." "- 📦 解压模块基本文件..."
30 | unzip -o "$ZIPFILE" "action.sh" -d "$MODPATH" >/dev/null 2>&1
31 | unzip -o "$ZIPFILE" "module.prop" -d "$MODPATH" >/dev/null 2>&1
32 | unzip -o "$ZIPFILE" "service.sh" -d "$MODPATH" >/dev/null 2>&1
33 | unzip -o "$ZIPFILE" "uninstall.sh" -d "$MODPATH" >/dev/null 2>&1
34 | unzip -o "$ZIPFILE" "webroot/*" -d "$MODPATH" >/dev/null 2>&1
35 |
36 | extract_keep_config() {
37 | info "- 🌈 Keeping old configuration files..." "- 🌈 保留原来的配置文件..."
38 | info "- 📜 Extracting script files..." "- 📜 正在解压脚本文件..."
39 | unzip -o "$ZIPFILE" "scripts/*" -d $AGH_DIR >/dev/null 2>&1 || {
40 | error "- ❌ Failed to extract scripts!" "- ❌ 解压脚本文件失败!"
41 | }
42 | info "- 🛠️ Extracting binary files except configuration..." "- 🛠️ 正在解压二进制文件(不包括配置文件)..."
43 | unzip -o "$ZIPFILE" "bin/*" -x "bin/AdGuardHome.yaml" -d $AGH_DIR >/dev/null 2>&1 || {
44 | error "- ❌ Failed to extract binary files!" "- ❌ 解压二进制文件失败!"
45 | }
46 | info "- 🚫 Skipping configuration file extraction..." "- 🚫 跳过解压配置文件..."
47 | }
48 |
49 | extract_no_config() {
50 | info "- 💾 Backing up old configuration files with .bak extension..." "- 💾 使用 .bak 扩展名备份旧配置文件..."
51 | [ -f "$AGH_DIR/settings.conf" ] && mv "$AGH_DIR/settings.conf" "$AGH_DIR/settings.conf.bak"
52 | [ -f "$AGH_DIR/bin/AdGuardHome.yaml" ] && mv "$AGH_DIR/bin/AdGuardHome.yaml" "$AGH_DIR/bin/AdGuardHome.yaml.bak"
53 | extract_all
54 | }
55 |
56 | extract_all() {
57 | info "- 🌟 Extracting script files..." "- 🌟 正在解压脚本文件..."
58 | unzip -o "$ZIPFILE" "scripts/*" -d $AGH_DIR >/dev/null 2>&1 || {
59 | error "- ❌ Failed to extract scripts" "- ❌ 解压脚本文件失败"
60 | }
61 | info "- 🛠️ Extracting binary files..." "- 🛠️ 正在解压二进制文件..."
62 | unzip -o "$ZIPFILE" "bin/*" -d $AGH_DIR >/dev/null 2>&1 || {
63 | error "- ❌ Failed to extract binary files" "- ❌ 解压二进制文件失败"
64 | }
65 | info "- 📜 Extracting configuration files..." "- 📜 正在解压配置文件..."
66 | unzip -o "$ZIPFILE" "settings.conf" -d $AGH_DIR >/dev/null 2>&1 || {
67 | error "- ❌ Failed to extract configuration files" "- ❌ 解压配置文件失败"
68 | }
69 | }
70 |
71 | if [ -d "$AGH_DIR" ]; then
72 | info "- ⏹️ Found old version, stopping all AdGuardHome processes..." "- ⏹️ 发现旧版模块,正在停止所有 AdGuardHome 进程..."
73 | pkill -f "AdGuardHome" || pkill -9 -f "AdGuardHome"
74 | info "- 🔄 Do you want to keep the old configuration? (If not, it will be automatically backed up)" "- 🔄 是否保留原来的配置文件?(若不保留则自动备份)"
75 | info "- 🔊 (Volume Up = Yes, Volume Down = No, 10s no input = No)" "- 🔊 (音量上键 = 是, 音量下键 = 否,10秒无操作 = 否)"
76 | START_TIME=$(date +%s)
77 | while true; do
78 | NOW_TIME=$(date +%s)
79 | timeout 1 getevent -lc 1 2>&1 | grep KEY_VOLUME >"$TMPDIR/events"
80 | if [ $((NOW_TIME - START_TIME)) -gt 9 ]; then
81 | info "- ⏰ No input detected after 10 seconds, defaulting to not keep old configuration." "- ⏰ 10秒无输入,默认不保留原配置。"
82 | extract_no_config
83 | break
84 | elif $(cat $TMPDIR/events | grep -q KEY_VOLUMEUP); then
85 | extract_keep_config
86 | break
87 | elif $(cat $TMPDIR/events | grep -q KEY_VOLUMEDOWN); then
88 | extract_no_config
89 | break
90 | fi
91 | done
92 | else
93 | info "- 📦 First time installation, extracting files..." "- 📦 第一次安装,正在解压文件..."
94 | mkdir -p "$AGH_DIR" "$BIN_DIR" "$SCRIPT_DIR"
95 | extract_all
96 | fi
97 |
98 | info "- 🔐 Setting permissions..." "- 🔐 设置权限..."
99 |
100 | chmod +x "$BIN_DIR/AdGuardHome"
101 | chown root:net_raw "$BIN_DIR/AdGuardHome"
102 |
103 | chmod +x "$SCRIPT_DIR"/*.sh "$MODPATH"/*.sh
104 |
105 | info "- 🎉 Installation completed, please reboot." "- 🎉 安装完成,请重启设备。"
106 |
--------------------------------------------------------------------------------
/src/bin/AdGuardHome.yaml:
--------------------------------------------------------------------------------
1 | http:
2 | pprof:
3 | port: 6060
4 | enabled: false
5 | address: 127.0.0.1:3000
6 | session_ttl: 720h
7 | users:
8 | - name: root
9 | password: $2b$12$D3zeMIBFfzcQTqGqB.k7GOkMvqx1jgsrdiRCn2kwOHl.kNmmPfMom
10 | auth_attempts: 5
11 | block_auth_min: 15
12 | http_proxy: ""
13 | language: ""
14 | theme: auto
15 | dns:
16 | bind_hosts:
17 | - 127.0.0.1
18 | port: 5591
19 | anonymize_client_ip: false
20 | ratelimit: 0
21 | ratelimit_subnet_len_ipv4: 24
22 | ratelimit_subnet_len_ipv6: 56
23 | ratelimit_whitelist: []
24 | refuse_any: true
25 | upstream_dns:
26 | - https://doh.pub/dns-query
27 | - https://dns.alidns.com/dns-query
28 | upstream_dns_file: ""
29 | bootstrap_dns:
30 | - 119.29.29.29
31 | - 223.5.5.5
32 | - 223.6.6.6
33 | - 1.1.1.1
34 | - 8.8.8.8
35 | fallback_dns:
36 | - https://dns.google/dns-query
37 | - https://cloudflare-dns.com/dns-query
38 | upstream_mode: load_balance
39 | fastest_timeout: 1s
40 | allowed_clients: []
41 | disallowed_clients: []
42 | blocked_hosts:
43 | - version.bind
44 | - id.server
45 | - hostname.bind
46 | trusted_proxies:
47 | - 127.0.0.0/8
48 | - ::1/128
49 | cache_enabled: true
50 | cache_size: 67108864
51 | cache_ttl_min: 0
52 | cache_ttl_max: 0
53 | cache_optimistic: true
54 | cache_optimistic_answer_ttl: 30s
55 | cache_optimistic_max_age: 12h
56 | bogus_nxdomain: []
57 | aaaa_disabled: false
58 | enable_dnssec: false
59 | edns_client_subnet:
60 | custom_ip: ""
61 | enabled: true
62 | use_custom: false
63 | max_goroutines: 300
64 | handle_ddr: true
65 | ipset: []
66 | ipset_file: ""
67 | bootstrap_prefer_ipv6: false
68 | upstream_timeout: 10s
69 | private_networks: []
70 | use_private_ptr_resolvers: false
71 | local_ptr_upstreams: []
72 | use_dns64: false
73 | dns64_prefixes: []
74 | serve_http3: false
75 | use_http3_upstreams: false
76 | serve_plain_dns: true
77 | hostsfile_enabled: true
78 | pending_requests:
79 | enabled: true
80 | tls:
81 | enabled: false
82 | server_name: ""
83 | force_https: false
84 | port_https: 443
85 | port_dns_over_tls: 853
86 | port_dns_over_quic: 853
87 | port_dnscrypt: 0
88 | dnscrypt_config_file: ""
89 | allow_unencrypted_doh: false
90 | certificate_chain: ""
91 | private_key: ""
92 | certificate_path: ""
93 | private_key_path: ""
94 | strict_sni_check: false
95 | querylog:
96 | dir_path: ""
97 | ignored: []
98 | interval: 24h
99 | size_memory: 1000
100 | enabled: true
101 | file_enabled: true
102 | statistics:
103 | dir_path: ""
104 | ignored: []
105 | interval: 24h
106 | enabled: true
107 | filters:
108 | - enabled: true
109 | url: https://raw.githubusercontent.com/TG-Twilight/AWAvenue-Ads-Rule/main/AWAvenue-Ads-Rule.txt
110 | name: AWAvenue
111 | id: 1732747955
112 | whitelist_filters: []
113 | user_rules:
114 | - ""
115 | dhcp:
116 | enabled: false
117 | interface_name: ""
118 | local_domain_name: lan
119 | dhcpv4:
120 | gateway_ip: ""
121 | subnet_mask: ""
122 | range_start: ""
123 | range_end: ""
124 | lease_duration: 86400
125 | icmp_timeout_msec: 1000
126 | options: []
127 | dhcpv6:
128 | range_start: ""
129 | lease_duration: 86400
130 | ra_slaac_only: false
131 | ra_allow_slaac: false
132 | filtering:
133 | blocking_ipv4: ""
134 | blocking_ipv6: ""
135 | blocked_services:
136 | schedule:
137 | time_zone: Asia/Shanghai
138 | ids: []
139 | protection_disabled_until: null
140 | safe_search:
141 | enabled: false
142 | bing: true
143 | duckduckgo: true
144 | ecosia: true
145 | google: true
146 | pixabay: true
147 | yandex: true
148 | youtube: true
149 | blocking_mode: default
150 | parental_block_host: family-block.dns.adguard.com
151 | safebrowsing_block_host: standard-block.dns.adguard.com
152 | rewrites: []
153 | safe_fs_patterns: []
154 | safebrowsing_cache_size: 1048576
155 | safesearch_cache_size: 1048576
156 | parental_cache_size: 1048576
157 | cache_time: 30
158 | filters_update_interval: 72
159 | blocked_response_ttl: 10
160 | filtering_enabled: true
161 | rewrites_enabled: true
162 | parental_enabled: false
163 | safebrowsing_enabled: false
164 | protection_enabled: true
165 | clients:
166 | runtime_sources:
167 | whois: true
168 | arp: true
169 | rdns: true
170 | dhcp: true
171 | hosts: true
172 | persistent: []
173 | log:
174 | enabled: true
175 | file: ""
176 | max_backups: 0
177 | max_size: 100
178 | max_age: 3
179 | compress: false
180 | local_time: false
181 | verbose: false
182 | os:
183 | group: ""
184 | user: ""
185 | rlimit_nofile: 0
186 | schema_version: 32
187 |
--------------------------------------------------------------------------------
/docs/index.md:
--------------------------------------------------------------------------------
1 | # 教程 (Tutorials)
2 |
3 | > **For English Users:** This module is primarily designed for Chinese users. If you require the documentation in English, we kindly recommend using a reliable translation tool.
4 |
5 | ## 安装 (Installation)
6 |
7 | 本模块仅适用于已经 root 的安卓设备,支持 [Magisk](https://github.com/topjohnwu/Magisk) / [KernelSU](https://github.com/tiann/KernelSU) / [APatch](https://github.com/bmax121/APatch) 等 root 工具
8 |
9 | 在 Release 页面下载 zip 文件,提供了 arm64 和 armv7 两个版本。一般推荐使用 arm64 版,因为它在性能上更优,并且与大多数现代设备兼容。
10 |
11 | ---
12 |
13 | ## 配置 (Configuration)
14 |
15 | 模块默认的 AdGuardHome 后台地址为 `http://127.0.0.1:3000`,可以通过浏览器直接访问,默认账号和密码均为 `root`。
16 |
17 | 在 AdGuardHome 后台,你可以执行以下操作:
18 |
19 | - 查看 DNS 查询统计信息
20 | - 修改各种 DNS 配置
21 | - 查看日志
22 | - 添加自定义规则
23 |
24 | 如果你更倾向于使用app管理AdGuardHome,可以尝试使用 [AdGuard Home Manager](https://github.com/JGeek00/adguard-home-manager) 应用。
25 |
26 | ---
27 |
28 | ## 模块控制 (Module Control)
29 |
30 | 模块的状态会实时显示在`module.prop`文件中,在root管理器中可以看到模块的状态信息(如果没刷新请手动刷新)
31 |
32 | 模块实时监测`/data/adb/modules/AdGuardHome`目录下的`disable`文件,如果存在则禁用模块,不存在则启用模块
33 |
34 | 如果你想用其他方法来启停,你可以在文件管理器中手动创建和删除文件,也可以使用shell命令
35 |
36 | ```shell
37 | touch /data/adb/modules/AdGuardHome/disable
38 | ```
39 |
40 | ```shell
41 | rm /data/adb/modules/AdGuardHome/disable
42 | ```
43 |
44 | 本模块可以分为两部分,一部分是 AdGuardHome 本身,它在本地搭建了一个可自定义拦截功能的 DNS 服务器,另一部分是 iptables 转发规则,它负责将本机所有53端口出口流量重定向到 AdGuardHome
45 |
46 | ---
47 |
48 | ## 与代理软件共存 (Coexistence with Proxy Software)
49 |
50 | 代理软件主要分为两类:
51 |
52 | **代理应用**:如 [NekoBox](https://github.com/MatsuriDayo/NekoBoxForAndroid)、[FlClash](https://github.com/chen08209/FlClash) 等。这些应用通常具有图形化界面,便于用户配置和管理代理规则。
53 |
54 | 以下是我自用的 FlClash 配置文件示例:
55 |
56 | ```yaml
57 | proxy-providers:
58 | provider1:
59 | type: http
60 | url: ""
61 | interval: 86400
62 |
63 | provider2:
64 | type: http
65 | url: ""
66 | interval: 86400
67 |
68 | proxy-groups:
69 | - name: PROXY
70 | type: select
71 | include-all: true
72 |
73 | rules:
74 | proxy-groups:
75 | - name: PROXY
76 | type: select
77 | include-all: true
78 |
79 | rules:
80 | - GEOSITE,private,DIRECT
81 | - GEOSITE,googlefcm,DIRECT
82 | - GEOSITE,bilibili,DIRECT
83 | - GEOSITE,onedrive,PROXY
84 | - GEOSITE,twitter,PROXY
85 | - GEOSITE,youtube,PROXY
86 | - GEOSITE,telegram,PROXY
87 | - GEOSITE,google,PROXY
88 |
89 | - GEOSITE,microsoft@cn,DIRECT
90 | - GEOSITE,category-scholar-!cn,PROXY
91 | - GEOSITE,steam@cn,DIRECT
92 | - GEOSITE,category-games@cn,DIRECT
93 | - GEOSITE,geolocation-!cn,PROXY
94 | - GEOSITE,cn,DIRECT
95 |
96 | - GEOIP,private,DIRECT,no-resolve
97 | - GEOIP,google,DIRECT
98 | - GEOIP,telegram,PROXY
99 | - GEOIP,cn,DIRECT
100 |
101 | - MATCH,DIRECT
102 |
103 | ```
104 |
105 | 没有写 DNS 部分是因为 FlClash 支持 DNS 覆写,在软件内就可配置 DNS 部分,将域名解析服务器改为 127.0.0.1:5591 即可使用本地的 adgh 作为DNS服务器
106 |
107 | **代理模块**:如 [box_for_magisk](https://github.com/taamarin/box_for_magisk)、[akashaProxy](https://github.com/akashaProxy/akashaProxy) 等。这些模块通常运行在系统层级,适合需要更高权限或更深度集成的场景。
108 |
109 | 代理应用的 `分应用代理/访问控制` 功能非常实用。通过将国内应用设置为绕过模式,可以减少不必要的流量经过代理,同时这些绕过的应用仍然能够正常屏蔽广告。
110 |
111 | 如果使用代理模块,强烈建议禁用模块的 iptables 转发规则。禁用后,模块仅运行 AdGuardHome 本身。随后,将代理模块的上游 DNS 服务器配置为 `127.0.0.1:5591`,即可确保代理软件的所有 DNS 查询通过 AdGuardHome 进行广告屏蔽。
112 |
113 | ```yaml
114 | dns:
115 | # ...
116 | default-nameserver:
117 | - 223.5.5.5
118 | nameserver:
119 | - 127.0.0.1:5591
120 | # ...
121 | ```
122 |
123 | ---
124 |
125 | ## 模块目录与配置文件 (Module Directory and Configuration Files)
126 |
127 | 模块的文件结构主要分为以下两个目录:
128 |
129 | - **`/data/adb/agh`**:包含 AdGuardHome 的核心文件,包括二进制文件、工具脚本和配置文件。
130 | - **`/data/adb/modules/AdGuardHome`**:存储模块的启动脚本和运行时数据文件。
131 |
132 | 模块的配置文件也分为两部分:
133 |
134 | - **`/data/adb/agh/bin/AdGuardHome.yaml`**:AdGuardHome 的主配置文件。
135 | - **`/data/adb/agh/settings.conf`**:模块的配置文件,具体说明请参考文件内的注释。
136 |
137 | 在更新模块时,用户可以选择是否保留原有的配置文件。如果选择不保留,系统会自动将原配置文件备份到 **`/data/adb/agh/backup`** 目录,以确保数据安全。
138 |
139 | ---
140 |
141 | ## 模块打包 (Module Packaging)
142 |
143 | 模块根目录下提供了一个名为 `pack.ps1` 的打包脚本,用户可以通过它快速生成模块的安装包。
144 |
145 | 在 Windows 系统上,打开 PowerShell 并执行以下命令:
146 |
147 | ```powershell
148 | .\pack.ps1
149 | ```
150 |
151 | 运行脚本后,以下操作将自动完成:
152 |
153 | 1. 创建 `cache` 目录(如果尚未存在)。
154 | 2. 下载并缓存最新版本的 AdGuardHome(仅在 `cache` 目录中未找到缓存时执行下载)。
155 | 3. 将 AdGuardHome 与模块的其他文件打包成一个 ZIP 文件。
156 |
157 | 该脚本的设计确保了高效性:如果 `cache` 目录中已存在 AdGuardHome 的缓存版本,则无需重复下载,从而节省时间和带宽。
158 |
159 | ## 常见问题 (Frequently Asked Questions)
160 |
161 | ### **Q: 模块安装后无法正常运行怎么办?**
162 |
163 | **A:**
164 |
165 | - 检查 AdGuardHome 是否在运行:
166 | 使用以下命令查看进程状态:
167 |
168 | ```shell
169 | ps | grep AdGuardHome
170 | ```
171 |
172 | - 确保设备的 **私人 DNS** 功能已关闭:
173 | 前往 **设置 -> 网络和互联网 -> 高级 -> 私人 DNS**,并将其设置为关闭。
174 |
175 | ### **Q: 如何更改 AdGuardHome 的默认端口?**
176 |
177 | **A:**
178 |
179 | - 打开 **`/data/adb/agh/bin/AdGuardHome.yaml`** 文件。
180 | - 修改 `bind_host` 的端口号为所需值。
181 | - 保存文件后,重启模块以应用更改。
182 |
183 | ### **Q: 如何禁用模块的 iptables 转发规则?**
184 |
185 | **A:**
186 |
187 | - 编辑 **`/data/adb/agh/settings.conf`** 文件。
188 | - 将 `ENABLE_IPTABLES` 参数设置为 `false`。
189 | - 保存文件后,重启模块。
190 |
191 | ### **Q: 使用代理模块时,广告屏蔽无效怎么办?**
192 |
193 | **A:**
194 |
195 | - 确保代理模块的上游 DNS 服务器配置为 **`127.0.0.1:5591`**。
196 | - 检查代理模块的配置文件,确保所有 DNS 查询通过 AdGuardHome。
197 |
198 | ### **Q: 模块是否会影响设备性能?**
199 |
200 | **A:**
201 |
202 | - 模块对性能的影响较小,但在低性能设备上可能会有轻微延迟。
203 | - 推荐使用 **arm64** 版本以获得更好的性能。
204 |
205 | ### **Q:使用模块后,无法访问 Google 怎么办?**
206 |
207 | **A:**
208 |
209 | - 如果你用的是 FlClash,可尝试在`settings.conf`填入以下配置:
210 |
211 | ```ini
212 | ignore_src_list="172.19.0.1"
213 | ```
214 |
215 | 此问题与节点质量有关,有的机场不改也没问题
216 |
--------------------------------------------------------------------------------
/src/bin/data/filters/1732747955.txt:
--------------------------------------------------------------------------------
1 | ||1500020991.vodplayer.wxamedia.com^
2 | ||1500022744.vodplayer.wxamedia.com^
3 | ||1500026601.vodplayer.wxamedia.com^
4 | ||8le8le.com^
5 | ||8rn1y79f02-1.algolianet.com^
6 | ||a0.app.xiaomi.com^
7 | ||aaid.umeng.com^
8 | ||abtest-ch.snssdk.com^
9 | ||ad-cdn.qingting.fm^
10 | ||ad-scope.com^
11 | ||ad-scope.com.cn^
12 | ||ad-sdk-config.youdao.com^
13 | ||ad-splash-tracking.hktvmall.com^
14 | ||ad-splash.hktvmall.com^
15 | ||ad.12306.cn^
16 | ||ad.51wnl.com^
17 | ||ad.api.3g.youku.com^
18 | ||ad.bwton.com^
19 | ||ad.cctv.com^
20 | ||ad.cyapi.cn^
21 | ||ad.doubleclick.net^
22 | ||ad.gameley.com^
23 | ||ad.hpplay.cn^
24 | ||ad.iot.360.cn^
25 | ||ad.jia.360.cn^
26 | ||ad.life.360.cn^
27 | ||ad.partner.gifshow.com^
28 | ||ad.qingting.fm^
29 | ||ad.qq.com^
30 | ||ad.richmob.cn^
31 | ||ad.shenshiads.com^
32 | ||ad.shunchangzhixing.com^
33 | ||ad.tencentmusic.com^
34 | ||ad.toutiao.com^
35 | ||ad.v3mh.com^
36 | ||ad.winrar.com.cn^
37 | ||ad.ximalaya.com^
38 | ||ad.xunkids.com^
39 | ||ad.zijieapi.com^
40 | ||adapi.izuiyou.com^
41 | ||adapi.yynetwk.com^
42 | ||adashbc.ut.taobao.com^
43 | ||adashx.m.taobao.com^
44 | ||adashxgc.ut.taobao.com^
45 | ||adc.hpplay.cn^
46 | ||adcdn.hpplay.cn^
47 | ||adcdn.tencentmusic.com^
48 | ||adclick.g.doubleclick.net^
49 | ||adclick.tencentmusic.com^
50 | ||adcolony.com^
51 | ||addata.jd.com^
52 | ||adeng.hpplay.cn^
53 | ||adexp.chinaliftoff.io^
54 | ||adexp.liftoff.io^
55 | ||adexpo.tencentmusic.com^
56 | ||adfilter.imtt.qq.com^
57 | ||adguanggao.eee114.com^
58 | ||adjust.cn^
59 | ||adjust.com^
60 | ||adks.hpplay.cn^
61 | ||adlink-api.huan.tv^
62 | ||adm.funshion.com^
63 | ||ads-api-o.api.leiniao.com^
64 | ||ads-api.tiktok.com^
65 | ||ads-api.twitter.com^
66 | ||ads-img-al.xhscdn.com^
67 | ||ads-img-qc.xhscdn.com^
68 | ||ads-jp.tiktok.com^
69 | ||ads-marketing-vivofs.vivo.com.cn^
70 | ||ads-sdk-api.ranfenghd.com^
71 | ||ads-sg.tiktok.com^
72 | ||ads-video-al.xhscdn.com^
73 | ||ads-video-qc.xhscdn.com^
74 | ||ads.95516.com^
75 | ||ads.cup.com.cn^
76 | ||ads.google.cn^
77 | ||ads.huan.tv^
78 | ||ads.huantest.com^
79 | ||ads.icloseli.cn^
80 | ||ads.inmobi.com^
81 | ||ads.linkedin.com^
82 | ||ads.pinterest.com^
83 | ||ads.pubmatic.com^
84 | ||ads.raidrive.com^
85 | ||ads.servebom.com^
86 | ||ads.service.kugou.com^
87 | ||ads.tiktok.com^
88 | ||ads.v3mh.com^
89 | ||ads.youtube.com^
90 | ||ads.zhinengxiyifang.cn^
91 | ||ads3-normal-hl.zijieapi.com^
92 | ||ads3-normal-lf.zijieapi.com^
93 | ||ads3-normal-lq.zijieapi.com^
94 | ||ads3-normal.zijieapi.com^
95 | ||ads5-normal-hl.zijieapi.com^
96 | ||ads5-normal-lf.zijieapi.com^
97 | ||ads5-normal-lq.zijieapi.com^
98 | ||ads5-normal.zijieapi.com^
99 | ||adsdk.vivo.com.cn^
100 | ||adse.test.ximalaya.com^
101 | ||adse.wsa.ximalaya.com^
102 | ||adse.ximalaya.com^
103 | ||adsebs.ximalaya.com^
104 | ||adsense.google.cn^
105 | ||adserver.unityads.unity3d.com^
106 | ||adservice.google.com^
107 | ||adservice.sigmob.cn^
108 | ||adserviceretry.kugou.com^
109 | ||adsfile.bssdlbig.kugou.com^
110 | ||adsfile.qq.com^
111 | ||adsfilebssdlbig.ali.kugou.com^
112 | ||adsfileretry.service.kugou.com^
113 | ||adsfs-sdkconfig.heytapimage.com^
114 | ||adsfs.oppomobile.com^
115 | ||adslvfile.qq.com^
116 | ||adsmart.konka.com^
117 | ||adsmind.gdtimg.com^
118 | ||adsmind.ugdtimg.com^
119 | ||adsp.xunlei.com^
120 | ||adstat.izuiyou.com^
121 | ||adstats.tencentmusic.com^
122 | ||adstore-1252524079.file.myqcloud.com^
123 | ||adstore-index-1252524079.file.myqcloud.com^
124 | ||adstudio-assets.scdn.co^
125 | ||adstudio.spotify.com^
126 | ||adtago.s3.amazonaws.com^
127 | ||adtech.yahooinc.com^
128 | ||adtrack.quark.cn^
129 | ||adv-api.shenshiads.com^
130 | ||adv.sec.intl.miui.com^
131 | ||adv.sec.miui.com^
132 | ||advertising-api-eu.amazon.com^
133 | ||advertising-api-fe.amazon.com^
134 | ||advertising-api.amazon.com^
135 | ||advertising.apple.com^
136 | ||advertising.yahoo.com^
137 | ||advertising.yandex.ru^
138 | ||advice-ads.s3.amazonaws.com^
139 | ||adview.cn^
140 | ||adx-ad.smart-tv.cn^
141 | ||adx-api.jinmo.tech^
142 | ||adx-bj-req.anythinktech.com^
143 | ||adx-bj.anythinktech.com^
144 | ||adx-cn.anythinktech.com^
145 | ||adx-drcn.op.dbankcloud.cn^
146 | ||adx-open-service.youku.com^
147 | ||adx-os.anythinktech.com^
148 | ||adx-saas.advlion.com^
149 | ||adx.ads.heytapmobi.com^
150 | ||adx.ads.oppomobile.com^
151 | ||adx.appsdk.com.cn^
152 | ||adx.sogaha.cn^
153 | ||adx.tuia.cn^
154 | ||adxlog-adnet.vivo.com.cn^
155 | ||adxserver.ad.cmvideo.cn^
156 | ||aegis.qq.com^
157 | ||aem.dentsuchina.cn^
158 | ||afs.googlesyndication.com^
159 | ||agn.aty.sohu.com^
160 | ||aiseet.aa.atianqi.com^
161 | ||ali-ad.a.yximgs.com^
162 | ||ali-p2p-v2.pull.yximgs.com^
163 | ||alicoccdncnc-xn.inter.71edge.com^
164 | ||alicoccdnct-xn.inter.71edge.com^
165 | ||alog.umeng.com^
166 | ||alogus.umeng.com^
167 | ||als.baidu.com^
168 | ||amdcopen.m.taobao.com^
169 | ||an.facebook.com^
170 | ||analysis.chatglm.cn^
171 | ||analysis.yozocloud.cn^
172 | ||analytics-api.samsunghealthcn.com^
173 | ||analytics.adjust.cn^
174 | ||analytics.oceanengine.com^
175 | ||analytics.pinterest.com^
176 | ||analytics.pointdrive.linkedin.com^
177 | ||analytics.query.yahoo.com^
178 | ||analytics.rayjump.com^
179 | ||analytics.s3.amazonaws.com^
180 | ||analytics.tiktok.com^
181 | ||analytics.woozooo.com^
182 | ||analyticsengine.s3.amazonaws.com^
183 | ||analyze.lemurbrowser.com^
184 | ||andrqd.play.aiseet.atianqi.com^
185 | ||ap.dongdianqiu.com^
186 | ||ap.dongqiudi.com^
187 | ||apd-pcdnwxlogin.teg.tencent-cloud.net^
188 | ||apd-pcdnwxnat.teg.tencent-cloud.net^
189 | ||apd-pcdnwxstat.teg.tencent-cloud.net^
190 | ||api-access.pangolin-sdk-toutiao.com^
191 | ||api-access.pangolin-sdk-toutiao1.com^
192 | ||api-access.pangolin-sdk-toutiao2.com^
193 | ||api-access.pangolin-sdk-toutiao3.com^
194 | ||api-access.pangolin-sdk-toutiao4.com^
195 | ||api-access.pangolin-sdk-toutiao5.com^
196 | ||api-ad-data.kajicam.com^
197 | ||api-ad-product.huxiu.com^
198 | ||api-ad.kajicam.com^
199 | ||api-adservices.apple.com^
200 | ||api-gd.hiaiabc.com^
201 | ||api-htp.beizi.biz^
202 | ||api.ad.xiaomi.com^
203 | ||api.anythinktech.com^
204 | ||api.aqyad.com^
205 | ||api.e.kuaishou.com^
206 | ||api.fu.xcultur.com^
207 | ||api.htp.hubcloud.com.cn^
208 | ||api.hzsanjiaomao.com^
209 | ||api.installer.xiaomi.com^
210 | ||api.jietuhb.com^
211 | ||api.kingdata.ksyun.com^
212 | ||api.shanghailingye.cn^
213 | ||api.ssp.xcultur.com^
214 | ||api.statsig.com^
215 | ||api.touch-moblie.com^
216 | ||api.yfanads.com^
217 | ||api5-normal-quic-lf.ixigua.com^
218 | ||apiyd.my91app.com^
219 | ||app-measurement.com^
220 | ||appcfg.v.qq.com^
221 | ||applog-perf.uc.cn^
222 | ||applog.lc.quark.cn^
223 | ||applog.uc.cn^
224 | ||applog.zijieapi.com^
225 | ||applovin.com^
226 | ||appversion.115.com^
227 | ||aqyad.com^
228 | ||aspect-upush.umeng.com^
229 | ||auction.unityads.unity3d.com^
230 | ||audid-api.taobao.com^
231 | ||audid.umeng.com^
232 | ||b1-data.ads.heytapmobi.com^
233 | ||badjs.weixinbridge.com^
234 | ||baichuan-sdk.alicdn.com^
235 | ||baichuan-sdk.taobao.com^
236 | ||bdad.123pan.cn^
237 | ||bdapi-ads.realmemobile.com^
238 | ||bdapi-in-ads.realmemobile.com^
239 | ||bdapi.ads.oppomobile.com^
240 | ||bdcdncnc.inter.71edge.com^
241 | ||beacon-api.aliyuncs.com^
242 | ||beacon.qq.com^
243 | ||beaconcdn.qq.com^
244 | ||beacons.gvt2.com^
245 | ||beizi.biz^
246 | ||bes-mtj.baidu.com^
247 | ||bgg.baidu.com^
248 | ||bianxian.com^
249 | ||bingads.microsoft.com^
250 | ||biz.weibo.com^
251 | ||bj-td-menta-01-callback.advlion.com^
252 | ||bj.ad.track.66mobi.com^
253 | ||books-analytics-events.apple.com^
254 | ||bootpreload.uve.weibo.com^
255 | ||browser.events.data.msn.cn^
256 | ||browser.events.data.msn.com^
257 | ||browsercfg-drcn.cloud.dbankcloud.cn^
258 | ||bsrv.qq.com^
259 | ||bugly.qq.com^
260 | ||business-api.tiktok.com^
261 | ||c.bidtoolads.com^
262 | ||c.etoolads.cn^
263 | ||c.evidon.com^
264 | ||c.gj.qq.com^
265 | ||c.kuaiduizuoye.com^
266 | ||c.sayhi.360.cn^
267 | ||c2.gdt.qq.com^
268 | ||canvas-cdn.gdt.qq.com^
269 | ||catalog.fjwhcbsh.com^
270 | ||cbjs.baidu.com^
271 | ||ccc-x.jd.com^
272 | ||ccs.umeng.com^
273 | ||cdn-ad.wtzw.com^
274 | ||cdn-ads.oss-cn-shanghai.aliyuncs.com^
275 | ||cdn-f.adsmoloco.com^
276 | ||cdn-plugin-sync-upgrade-juui.hismarttv.com^
277 | ||cdn.aiclk.com^
278 | ||cdn.chinaliftoff-creatives.io^
279 | ||cdn.hpplay.com.cn^
280 | ||cdn.iads.unitychina.cn^
281 | ||cdn.liftoff-creatives.io^
282 | ||cdn.ynuf.aliapp.org^
283 | ||cfg.imtt.qq.com^
284 | ||chat1.jd.com^
285 | ||chiq-cloud.com^
286 | ||ck.ads.oppomobile.com^
287 | ||click.chinaliftoff.io^
288 | ||click.googleanalytics.com^
289 | ||click.liftoff.io^
290 | ||click.oneplus.cn^
291 | ||click4.chinaliftoff.io^
292 | ||clog.miguvideo.com^
293 | ||cloooud.com^
294 | ||cn-api.anythinktech.com^
295 | ||cnlogs.umeng.com^
296 | ||cnlogs.umengcloud.com^
297 | ||cnzz.com^
298 | ||collect.kugou.com^
299 | ||commdata.v.qq.com^
300 | ||conf.hpplay.cn^
301 | ||config.chsmarttv.com^
302 | ||config.inmobi.com^
303 | ||config.unityads.unity3d.com^
304 | ||cpc-service-square.aiclk.com^
305 | ||cpro.baidustatic.com^
306 | ||crash2.zhihu.com^
307 | ||crashlyticsreports-pa.googleapis.com^
308 | ||csjplatform.com^
309 | ||d.applovin.com^
310 | ||d.applvn.com^
311 | ||da.anythinktech.com^
312 | ||data-sdk-uuid-log.d.meituan.net^
313 | ||data.ads.oppomobile.com^
314 | ||data.chsmarttv.com^
315 | ||data.mistat.india.xiaomi.com^
316 | ||data.mistat.rus.xiaomi.com^
317 | ||data.mistat.xiaomi.com^
318 | ||datacollection.uve.weibo.com^
319 | ||dc.sigmob.cn^
320 | ||de.tynt.com^
321 | ||diagnosis.ad.xiaomi.com^
322 | ||dig.bdurl.net^
323 | ||dlogs.bwton.com^
324 | ||dm.toutiao.com^
325 | ||domain.aishengji.com^
326 | ||doubleclick-cn.net^
327 | ||download.changhong.upgrade2.huan.tv^
328 | ||downloadxml.changhong.upgrade2.huan.tv^
329 | ||drcn-weather.cloud.huawei.com^
330 | ||dsp-x.jd.com^
331 | ||dsp.fcbox.com^
332 | ||dualstack-logs.amap.com^
333 | ||dxp.baidu.com^
334 | ||dyp2p-ali.douyucdn.cn^
335 | ||dyp2p-hw.douyucdn.cn^
336 | ||e.ad.xiaomi.com^
337 | ||eclick.baidu.com^
338 | ||edge.ads.twitch.tv^
339 | ||ef-dongfeng.tanx.com^
340 | ||engine.dcad01.com^
341 | ||entry.baidu.com^
342 | ||et-eus.w.inmobi.com^
343 | ||event.tradplusad.com^
344 | ||events-drcn.op.dbankcloud.cn^
345 | ||events.reddit.com^
346 | ||events.redditmedia.com^
347 | ||fancyapi.com^
348 | ||fclog.baidu.com^
349 | ||feed-image.baidu.com^
350 | ||file.daihuo.qq.com^
351 | ||firebaselogging-pa.googleapis.com^
352 | ||flurry.com^
353 | ||frontend-perf-service.e.kuaishou.com^
354 | ||fxgate.baidu.com^
355 | ||g-adnet.hiaiabc.com^
356 | ||g-staic.ganjingworld.com^
357 | ||g.dtv.cn.miaozhen.com^
358 | ||g.fancyapi.com^
359 | ||g2.ganjing.world^
360 | ||game.loveota.com^
361 | ||gdfp.gifshow.com^
362 | ||gemini.yahoo.com^
363 | ||geo.yahoo.com^
364 | ||getui.cn^
365 | ||ggx.cmvideo.cn^
366 | ||ggx01.miguvideo.com^
367 | ||ggx03.miguvideo.com^
368 | ||globalapi.ad.xiaomi.com^
369 | ||google-analytics.com^
370 | ||googleads.g.doubleclick-cn.net^
371 | ||googleads.g.doubleclick.net^
372 | ||googleadservices-cn.com^
373 | ||googleadservices.com^
374 | ||googletagservices-cn.com^
375 | ||gorgon.youdao.com^
376 | ||gromore.pangolin-sdk-toutiao.com^
377 | ||grs.dbankcloud.com^
378 | ||grs.hicloud.com^
379 | ||gslb.hpplay.cn^
380 | ||gvideo.qpic.cn^
381 | ||h-adashx.ut.taobao.com^
382 | ||h.trace.qq.com^
383 | ||h5.analytics.126.net^
384 | ||h5.hpplay.com.cn^
385 | ||hanlanad.com^
386 | ||hc-ssp.sm.cn^
387 | ||heads-ak.spotify.com.edgesuite.net^
388 | ||heads-fa.spotify.com^
389 | ||hexagon-analytics.com^
390 | ||hlog.bigda.com^
391 | ||hm.baidu.com^
392 | ||hmma.baidu.com^
393 | ||hotupgrade.hpplay.cn^
394 | ||houyi.kkmh.com^
395 | ||hpplay.cdn.cibn.cc^
396 | ||httpdns.bcelive.com^
397 | ||httpdns.ocloud.oppomobile.com^
398 | ||hugelog.fcbox.com^
399 | ||huichuan-mc.sm.cn^
400 | ||huichuan.sm.cn^
401 | ||hw-ot-ad.a.yximgs.com^
402 | ||hw-p2p-pull.video-voip.com^
403 | ||hw-p2p.pull.yximgs.com^
404 | ||hwpub-s01-drcn.cloud.dbankcloud.cn^
405 | ||hybrid.miniapp.taobao.com^
406 | ||hye.comp.360os.com^
407 | ||hyt.comp.360os.com^
408 | ||i.l-new.inmobicdn.net^
409 | ||i.l.inmobicdn.net^
410 | ||iad.apple.com^
411 | ||iad.g.163.com^
412 | ||iadctest.qwapi.com^
413 | ||iadmusicmat.music.126.net^
414 | ||iadsdk.apple.com^
415 | ||iadworkbench.apple.com^
416 | ||ifacelog.iqiyi.com^
417 | ||ifs.tanx.com^
418 | ||ii.gdt.qq.com^
419 | ||image-ad.sm.cn^
420 | ||image.hpplay.cn^
421 | ||images.outbrainimg.com^
422 | ||images.pinduoduo.com^
423 | ||imdns.hpplay.cn^
424 | ||img-c.heytapimage.com^
425 | ||img-x.jd.com^
426 | ||img.adnyg.com.w.kunlungr.com^
427 | ||img2.360buyimg.com^
428 | ||impression-asia.chinaliftoff.io^
429 | ||impression-asia.liftoff.io^
430 | ||impression.appsflyer.com^
431 | ||in.treasuredata.com^
432 | ||ios.bugly.qq.com^
433 | ||iot-eu-logser.realme.com^
434 | ||iot-logser.realme.com^
435 | ||ipv4.kkmh.com^
436 | ||irc.qubiankeji.com^
437 | ||ixav-cse.avlyun.com^
438 | ||iyfbodn.com^
439 | ||janapi.jd.com^
440 | ||jiguang.cn^
441 | ||jpush.cn^
442 | ||jpush.html5.qq.com^
443 | ||jpush.io^
444 | ||jswebcollects.kugou.com^
445 | ||kde.qq.com^
446 | ||kepler.jd.com^
447 | ||kl.67it.com^
448 | ||klink.volceapplog.com^
449 | ||knicks.jd.com^
450 | ||ks-p2p-v2.pull.yximgs.com^
451 | ||ks-p2p.pull.yximgs.com^
452 | ||ks.ferlytc.com^
453 | ||ks.pull.yximgs.com^
454 | ||l6.fancyapi.com^
455 | ||launcher.smart-tv.cn^
456 | ||launcherimg.smart-tv.cn^
457 | ||lf3-ad-union-sdk.pglstatp-toutiao.com^
458 | ||lf6-ad-union-sdk.pglstatp-toutiao.com^
459 | ||lftxali.fancyapi.com^
460 | ||lh3.googleadsserving.cn^
461 | ||litchiads.com^
462 | ||live-api.hktvmall.com^
463 | ||liveats-vod.video.ptqy.gitv.tv^
464 | ||livemonitor.huan.tv^
465 | ||livep.l.aiseet.atianqi.com^
466 | ||lives.l.aiseet.atianqi.com^
467 | ||lives.l.ott.video.qq.com^
468 | ||livewebbs2pcdn.msstatic.com^
469 | ||lm10111.jtrincc.cn^
470 | ||log-api-mn.huxiu.com^
471 | ||log-api.huxiu.com^
472 | ||log-api.pangolin-sdk-toutiao-b.com^
473 | ||log-api.pangolin-sdk-toutiao.com^
474 | ||log-report.com^
475 | ||log-sdk.gifshow.com^
476 | ||log-sdk.ksapisrv.com^
477 | ||log-upload-os.hoyoverse.com^
478 | ||log-upload.mihoyo.com^
479 | ||log-verify.dutils.com^
480 | ||log-verify.hiaiabc.com^
481 | ||log.ad.xiaomi.com^
482 | ||log.aispeech.com^
483 | ||log.amemv.com^
484 | ||log.appstore3.huan.tv^
485 | ||log.avlyun.com^
486 | ||log.byteoversea.com^
487 | ||log.fc.yahoo.com^
488 | ||log.iflytek.com^
489 | ||log.ireader.com^
490 | ||log.kuwo.cn^
491 | ||log.pinterest.com^
492 | ||log.popin.cc^
493 | ||log.stat.kugou.com^
494 | ||log.tagtic.cn^
495 | ||log.tbs.qq.com^
496 | ||log.vcgame.cn^
497 | ||log.web.kugou.com^
498 | ||log.zijieapi.com^
499 | ||log1.cmpassport.com^
500 | ||logbak.hicloud.com^
501 | ||logrcv.aiclk.com^
502 | ||logrcv.yunxish.com^
503 | ||logs.amap.com^
504 | ||logservice.hicloud.com^
505 | ||logservice1.hicloud.com^
506 | ||logtj.kugou.com^
507 | ||logupdate.avlyun.sec.miui.com^
508 | ||logwebs.kugou.com^
509 | ||luimg.baidu.com^
510 | ||m-adnet.hiaiabc.com^
511 | ||m.ad.zhangyue.com^
512 | ||m.atm.youku.com^
513 | ||m.shenshiads.com^
514 | ||m1.ad.10010.com^
515 | ||mapi.m.jd.com^
516 | ||masdkv6.3g.qq.com^
517 | ||mazu.m.qq.com^
518 | ||mbdlog.iqiyi.com^
519 | ||mcs.zijieapi.com^
520 | ||metrics.data.hicloud.com^
521 | ||metrics.icloud.com^
522 | ||metrics.mzstatic.com^
523 | ||metrics2.data.hicloud.com^
524 | ||metrika.yandex.ru^
525 | ||mi.gdt.qq.com^
526 | ||miav-cse.avlyun.com^
527 | ||micro-xdb.com^
528 | ||mini-prog-drm.vodplayvideo.net^
529 | ||mission-pub.smart-tv.cn^
530 | ||miui-fxcse.avlyun.com^
531 | ||mlog.bigda.com^
532 | ||mnqlog.ldmnq.com^
533 | ||moatads.com^
534 | ||mobads-logs.baidu.com^
535 | ||mobads-pre-config.cdn.bcebos.com^
536 | ||mobads.baidu.com^
537 | ||mobaliyun.res.mgtv.com^
538 | ||mobile.da.mgtv.com^
539 | ||mobilead.kuwo.cn^
540 | ||mobilelog.kugou.com^
541 | ||mobilelog.upqzfile.com^
542 | ||monitor-ads-test.huan.tv^
543 | ||monitor-uu.play.aiseet.atianqi.com^
544 | ||monitor.adxsenmeng.com^
545 | ||monitor.music.qq.com^
546 | ||monitor.uu.qq.com^
547 | ||monsetting.toutiao.com^
548 | ||ms.applovin.com^
549 | ||ms.applvn.com^
550 | ||ms4.applovin.com^
551 | ||ms4.applvn.com^
552 | ||msdk.voiceads.cn^
553 | ||mssdk.volces.com^
554 | ||mssdk.zijieapi.com^
555 | ||mtj.baidu.com^
556 | ||nadvideo2.baidu.com^
557 | ||newvoice.chiq5.smart-tv.cn^
558 | ||nex.163.com^
559 | ||nmetrics.samsung.com^
560 | ||notes-analytics-events.apple.com^
561 | ||notify.sec.miui.com^
562 | ||nsclick.baidu.com^
563 | ||o-sdk.mediation.unity3d.com^
564 | ||o2o.api.xiaomi.com^
565 | ||offerwall.yandex.net^
566 | ||ogads-pa.clients6.google.com^
567 | ||omgmta.play.aiseet.atianqi.com^
568 | ||open-set-api.shenshiads.com^
569 | ||open.e.kuaishou.cn^
570 | ||open.e.kuaishou.com^
571 | ||open.kuaishouzt.com^
572 | ||open.kwaizt.com^
573 | ||open.snssdk.com^
574 | ||openadapi.fancydsp.com^
575 | ||optimus-ads.amap.com^
576 | ||orbit.jd.com^
577 | ||oss.cdn.aiclk.com^
578 | ||oth.eve.mdt.qq.com^
579 | ||oth.str.mdt.qq.com^
580 | ||otheve.play.aiseet.atianqi.com^
581 | ||outlookads.live.com^
582 | ||p.l.qq.com^
583 | ||p.s.360.cn^
584 | ||p1-be-pack-sign.pglstatp-toutiao.com^
585 | ||p1-lm.adkwai.com^
586 | ||p2-be-pack-sign.pglstatp-toutiao.com^
587 | ||p2-lm.adkwai.com^
588 | ||p2pchunk-table.douyucdn.cn^
589 | ||p2plive-ali.douyucdn.cn^
590 | ||p2pupdate.gamedl.qq.com^
591 | ||p2pupgrade.gamedl.qq.com^
592 | ||p3-be-pack-sign.pglstatp-toutiao.com^
593 | ||p3-lm.adkwai.com^
594 | ||p3-tt.byteimg.com^
595 | ||p4-be-pack-sign.pglstatp-toutiao.com^
596 | ||p5-be-pack-sign.pglstatp-toutiao.com^
597 | ||p6-be-pack-sign.pglstatp-toutiao.com^
598 | ||p66-ad.adkwai.com^
599 | ||pagead2.googleadservices.com^
600 | ||pagead2.googlesyndication.com^
601 | ||pangolin-sdk-toutiao-b.com^
602 | ||pay.sboot.cn^
603 | ||pcdn.xmcdn.com^
604 | ||pcdn.yximgs.com^
605 | ||pcm-img.zhls.qq.com^
606 | ||pgdt.gtimg.cn^
607 | ||pgdt.ugdtimg.com^
608 | ||pglstatp-toutiao.com^
609 | ||pig.pupuapi.com^
610 | ||pin.hpplay.cn^
611 | ||pixon.ads-pixiv.net^
612 | ||pkoplink.com^
613 | ||pl.cp31.ott.cibntv.net^
614 | ||plbslog.umeng.com^
615 | ||pms.mb.qq.com^
616 | ||policy.video.ptqy.gitv.tv^
617 | ||pos.baidu.com^
618 | ||prod-mediate-events.applovin.com^
619 | ||promotion-partner.kuaishou.com^
620 | ||proxy.advp.apple.com^
621 | ||public.gdtimg.com^
622 | ||q.i.gdt.qq.com^
623 | ||qmlog.baertt.com^
624 | ||qn-cdnfile1pcdn.msstatic.com^
625 | ||qqdata.ab.qq.com^
626 | ||qzs.gdtimg.com^
627 | ||recommend-drcn.hms.dbankcloud.cn^
628 | ||report.tv.kohesport.qq.com^
629 | ||res.hubcloud.com.cn^
630 | ||res1.applovin.com^
631 | ||res1.hubcloud.com.cn^
632 | ||res2.hubcloud.com.cn^
633 | ||res3.hubcloud.com.cn^
634 | ||resolve.umeng.com^
635 | ||review.gdtimg.com^
636 | ||rlog.popin.cc^
637 | ||rms-drcn.platform.dbankcloud.cn^
638 | ||roi.soulapp.cn^
639 | ||rp.hpplay.cn^
640 | ||rps.hpplay.cn^
641 | ||rpt.gdt.qq.com^
642 | ||rt.applovin.com^
643 | ||rt.applvn.com^
644 | ||rtb.adxsenmeng.com^
645 | ||rtb.voiceads.cn^
646 | ||s.amazon-adsystem.com^
647 | ||s1.cdn-sg.advlion.com^
648 | ||s8t.teads.tv^
649 | ||saad.ms.zhangyue.net^
650 | ||saas.hpplay.cn^
651 | ||safebrowsing.urlsec.gg.com^
652 | ||samsung-com.112.2o7.net^
653 | ||samsungads.com^
654 | ||saxysec.com^
655 | ||scs.openspeech.cn^
656 | ||sdk-ab-config.qquanquan.com^
657 | ||sdk-cache.video.ptqy.gitv.tv^
658 | ||sdk.1rtb.net^
659 | ||sdk.ad.smaato.net^
660 | ||sdk.adx.adwangmai.com^
661 | ||sdk.aqyad.com^
662 | ||sdk.beizi.biz^
663 | ||sdk.cferw.com^
664 | ||sdk.e.qq.com^
665 | ||sdk.hzsanjiaomao.com^
666 | ||sdk.markmedia.com.cn^
667 | ||sdk.mobads.adwangmai.com^
668 | ||sdkapi.cloooud.com^
669 | ||sdkauth.hpplay.cn^
670 | ||sdkconf.avlyun.com^
671 | ||sdkconfig.ad.intl.xiaomi.com^
672 | ||sdkconfig.ad.xiaomi.com^
673 | ||sdkconfig.play.aiseet.atianqi.com^
674 | ||sdkconfig.video.qq.com^
675 | ||sdkoptedge.chinanetcenter.com^
676 | ||sdkreport.e.qq.com^
677 | ||sdktmp.hubcloud.com.cn^
678 | ||sdownload.stargame.com^
679 | ||search.ixigua.com^
680 | ||search3-search.ixigua.com^
681 | ||search5-search-hl.ixigua.com^
682 | ||search5-search.ixigua.com^
683 | ||securemetrics.apple.com^
684 | ||securepubads.g.doubleclick.net^
685 | ||sensors-log.dongqiudi.com^
686 | ||sentry.music.163.com^
687 | ||service.changhong.upgrade2.huan.tv^
688 | ||service.vmos.cn^
689 | ||sf16-static.i18n-pglstatp.com^
690 | ||sf3-fe-tos.pglstatp-toutiao.com^
691 | ||shouji.sogou.com^
692 | ||sigmob.com^
693 | ||skdisplay.jd.com^
694 | ||sl.hpplay.cn^
695 | ||slb-p2p.vcloud.ks-live.com^
696 | ||smad.ms.zhangyue.net^
697 | ||smartad.10010.com^
698 | ||smetrics.samsung.com^
699 | ||sms.ads.oppomobile.com^
700 | ||sngmta.qq.com^
701 | ||snowflake.qq.com^
702 | ||ssp.cloooud.com^
703 | ||staging-notify.sec.miui.com^
704 | ||stat.dongqiudi.com^
705 | ||stat.y.qq.com^
706 | ||static-s.iqiyi.com^
707 | ||static.ads-twitter.com^
708 | ||statichf.shihuocdn.cn^
709 | ||statics.woozooo.com^
710 | ||stats.wp.com^
711 | ||statsigapi.net^
712 | ||stg-data.ads.heytapmobi.com^
713 | ||stun.hitv.com^
714 | ||success.ctobsnssdk.com^
715 | ||supply.inmobicdn.net^
716 | ||sv-video.play.aiseet.atianqi.com^
717 | ||syh-imp.cdnjtzy.com^
718 | ||syh.zybang.com^
719 | ||szbdyd.com^
720 | ||t-dsp.pinduoduo.com^
721 | ||t.applovin.com^
722 | ||t.l.qq.com^
723 | ||t.teads.tv^
724 | ||t.track.ad.xiaomi.com^
725 | ||t002.ottcn.com^
726 | ||t1.a.market.xiaomi.com^
727 | ||t1.teads.tv^
728 | ||t2.a.market.xiaomi.com^
729 | ||t2.fancyapi.com^
730 | ||t3.a.market.xiaomi.com^
731 | ||t7z.cupid.iqiyi.com^
732 | ||t7z.cupid.ptqy.gitv.tv^
733 | ||tangram.e.qq.com^
734 | ||target.ads.jihuoniao.com^
735 | ||tdc.qq.com^
736 | ||tdsdk.cpatrk.net^
737 | ||tdsdk.xdrig.com^
738 | ||telecome.cn^
739 | ||telemetry.sdk.inmobi.com^
740 | ||tencent-dtv.m.cn.miaozhen.com^
741 | ||test.ad.xiaomi.com^
742 | ||test.e.ad.xiaomi.com^
743 | ||tj.b.qq.com^
744 | ||tj.video.qq.com^
745 | ||tk.anythinktech.com^
746 | ||tmead.y.qq.com^
747 | ||tmeadcomm.y.qq.com^
748 | ||tmfmazu-wangka.m.qq.com^
749 | ||tmfmazu.m.qq.com^
750 | ||tmfsdk.m.qq.com^
751 | ||tmfsdktcpv4.m.qq.com^
752 | ||tnc0-aliec2.zijieapi.com^
753 | ||tnc0-alisc1.zijieapi.com^
754 | ||tnc0-bjlgy.zijieapi.com^
755 | ||tnc3-aliec1.toutiaoapi.com^
756 | ||tnc3-aliec2.bytedance.com^
757 | ||tnc3-aliec2.snssdk.com^
758 | ||tnc3-aliec2.toutiaoapi.com^
759 | ||tnc3-aliec2.zijieapi.com^
760 | ||tnc3-alisc1.bytedance.com^
761 | ||tnc3-alisc1.snssdk.com^
762 | ||tnc3-alisc1.toutiaoapi.com^
763 | ||tnc3-alisc1.zijieapi.com^
764 | ||tnc3-alisc2.zijieapi.com^
765 | ||tnc3-bjlgy.bytedance.com^
766 | ||tnc3-bjlgy.snssdk.com^
767 | ||tnc3-bjlgy.toutiaoapi.com^
768 | ||tnc3-bjlgy.zijieapi.com^
769 | ||toblog.ctobsnssdk.com^
770 | ||tpa-hcdn.iqiyi.com^
771 | ||tpc.googlesyndication-cn.com^
772 | ||tpc.googlesyndication.com^
773 | ||tr-asia.adsmoloco.com^
774 | ||trace.aqyad.com^
775 | ||trace.qq.com^
776 | ||tracelog-debug.aiclk.com^
777 | ||tracelog-debug.qquanquan.com^
778 | ||tracelog-debug.yunxish.com^
779 | ||track.lc.quark.cn^
780 | ||track.uc.cn^
781 | ||tracker.ai.xiaomi.com^
782 | ||tracker.gitee.com^
783 | ||tracking.miui.com^
784 | ||tracking.rus.miui.com^
785 | ||tvapp.hpplay.cn^
786 | ||tvuser-ch.cedock.com^
787 | ||tx-ad.a.yximgs.com^
788 | ||tx-kmpaudio.pull.yximgs.com^
789 | ||tx-p2p-pull.live-voip.com^
790 | ||tx-p2p-v2.pull.yximgs.com^
791 | ||tytx.m.cn.miaozhen.com^
792 | ||tz.sec.xiaomi.com^
793 | ||uapi.ads.heytapmobi.com^
794 | ||udc.yahoo.com^
795 | ||udcm.yahoo.com^
796 | ||uedas.qidian.com^
797 | ||uhabo.com^
798 | ||ulog-sdk.gifshow.com^
799 | ||ulogjs.gifshow.com^
800 | ||ulogs.umeng.com^
801 | ||ulogs.umengcloud.com^
802 | ||umengacs.m.taobao.com^
803 | ||umengjmacs.m.taobao.com^
804 | ||umini.shujupie.com^
805 | ||union-mlog.bigda.com^
806 | ||union.baidu.cn^
807 | ||union.baidu.com^
808 | ||update.avlyun.sec.miui.com^
809 | ||update.lejiao.tv^
810 | ||update0.aiclk.com^
811 | ||upgrade-update.hismarttv.com^
812 | ||uranus.jd.com^
813 | ||us.l.qq.com^
814 | ||usr-api.aiclk.com^
815 | ||utoken.umeng.com^
816 | ||v.110route.cn^
817 | ||v.adintl.cn^
818 | ||v.adx.hubcloud.com.cn^
819 | ||v1-ad.video.yximgs.com^
820 | ||v2-ad.video.yximgs.com^
821 | ||v2-api-channel-launcher.hismarttv.com^
822 | ||v2.gdt.qq.com^
823 | ||v2mi.gdt.qq.com^
824 | ||v3-ad.video.yximgs.com^
825 | ||v3.gdt.qq.com^
826 | ||vd6.l.qq.com^
827 | ||vi.l.qq.com^
828 | ||video-ad.sm.cn^
829 | ||video-dsp.pddpic.com^
830 | ||video.dispatch.tc.qq.com^
831 | ||video.market.xiaomi.com^
832 | ||vipauth.hpplay.cn^
833 | ||vipgslb.hpplay.cn^
834 | ||virusinfo-cloudscan-cn.heytapmobi.com^
835 | ||vlive.qqvideo.tc.qq.com^
836 | ||volc.bj.ad.track.66mobi.com^
837 | ||vungle.com^
838 | ||w.l.qq.com^
839 | ||w1.askwai.com^
840 | ||w1.gskwai.com^
841 | ||w1.kskwai.com^
842 | ||watson.microsoft.com^
843 | ||watson.telemetry.microsoft.com^
844 | ||wcp.taobao.com^
845 | ||weather-analytics-events.apple.com^
846 | ||weather-community-drcn.weather.dbankcloud.cn^
847 | ||webstat.qiumibao.com^
848 | ||webview.unityads.unity3d.com^
849 | ||widgets.outbrain.com^
850 | ||widgets.pinterest.com^
851 | ||wildcard.moatads.com.edgekey.net^
852 | ||win.gdt.qq.com^
853 | ||wn.x.jd.com^
854 | ||ws-keyboard.shouji.sogou.com^
855 | ||ws.sj.qq.com^
856 | ||wv.inner-active.mobi^
857 | ||wwads.cn^
858 | ||wxa.wxs.qq.com^
859 | ||wxaintpcos.wxqcloud.qq.com.cn^
860 | ||wximg.wxs.qq.com^
861 | ||wxsmw.wxs.qq.com^
862 | ||wxsnsad.tc.qq.com^
863 | ||wxsnsdy.tc.qq.com^
864 | ||wxsnsdy.wxs.qq.com^
865 | ||wxsnsdythumb.wxs.qq.com^
866 | ||xc.gdt.qq.com^
867 | ||xcx.dcad01.com^
868 | ||xiaomi-dtv.m.cn.miaozhen.com^
869 | ||xlog.jd.com^
870 | ||xlviiirdr.com^
871 | ||xlviirdr.com^
872 | ||xycdn.com^
873 | ||yk-ssp-ad.cp31.ott.cibntv.net^
874 | ||yk-ssp.ad.youku.com^
875 | ||ykad-data.cp31.ott.cibntv.net^
876 | ||ykad-data.youku.com^
877 | ||ykad-gateway.youku.com^
878 | ||youku-acs.m.taobao.com^
879 | ||ytx-file.110route.cn^
880 | ||zeus.ad.xiaomi.com^
881 | ||zhihu-web-analytics.zhihu.com^
882 | ||zjres-ad.kajicam.com^
883 | ||zxid-m.mobileservice.cn^
884 | ||1rtb.com^
885 | ||a.market.xiaomi.com^
886 | ||ad.gameley.com^
887 | ||adintl.cn^
888 | ||adx.adwangmai.com^
889 | ||data.hicloud.com^
890 | ||log.aliyuncs.com^
891 | ||ubixioe.com^
892 | ||vlion.cn^
893 | ||yfanads.com^
894 | ||zhangyuyidong.cn^
895 | *-ad.sm.cn*
896 | *-ad.video.yximgs.com*
897 | *-ad.wtzw.com*
898 | *-be-pack-sign.pglstatp-toutiao.com*
899 | *-normal.zijieapi.com*
900 |
--------------------------------------------------------------------------------