一、安装 Adguard Home

如果您使用的是 iStoreOS,建议通过软件包安装,并推荐使用重定向 53 模式。

下载地址:https://github.com/AUK9527/Are-u-ok?tab=readme-ov-file

在 NAS 上可以使用 Docker 安装:

docker run --name adguardhome \
    --restart unless-stopped \
    -v /你要挂载的目录/workdir:/opt/adguardhome/work \
    -v /你要挂载的目录/confdir:/opt/adguardhome/conf \
    -p 53:53/tcp -p 53:53/udp \
    -p 3000:3000/tcp \
    -d adguard/adguardhome:laster

二、设置

使用 IP:3000 进入后台,首次访问时需要设置账户和密码。

常规设置

安全搜索功能可以关闭,因为在国内用处不大。

日志的保存时长需要调整:

  • 存储空间充足时可设置为七天,通常 24 小时即可满足需求。如果有频繁请求的地址,也可以在此处进行忽略。

DNS 设置

上游 DNS 服务器

初始时可以随便填写一个 DNS 服务器,例如 https://dns.alidns.com/dns-query后续会用文件覆盖。

选择并行请求。

上游服务器填写全面,后备服务器可以不填。

BootstrapDNS:

tls://223.5.5.5
quic://223.5.5.5
tls://1.12.12.12

设置完成后,点击应用。

DNS 服务配置

速度限制和地址长度根据需求填写。

勾选启用 EDNS 客户端子网。

将拦截模式修改为自定义 IP,设置为 127.0.0.1 和 ::1。

因为默认的拦截会指向一个黑洞 IP,可能导致响应缓慢。

DNS 缓存设置

缓存大小:134217728(128 MiB),可根据需求调整。对于个人/家庭用户而言,默认的 4 MiB 缓存已足够,无需修改。

覆盖最小 TTL 值:3600,可根据需求增大或缩小。

覆盖最大 TTL 值:604800,可根据需求增大或缩小。

乐观缓存:true。

访问设置

默认设置即可。

过滤器

删除默认的过滤器,因为在国内效果不佳。

仓库地址:https://github.com/BlueSkyXN/AdGuardHomeRules

黑名单

https://raw.githubusercontent.com/BlueSkyXN/AdGuardHomeRules/master/all.txt
https://raw.githubusercontent.com/BlueSkyXN/AdGuardHomeRules/master/skyrules.txt

白名单

https://raw.githubusercontent.com/BlueSkyXN/AdGuardHomeRules/master/ok.txt

DNS 重写

可以理解为修改 hosts。

已阻止的服务

根据需要开启。

自定义过滤规则

此项可以缓解部分黑名单规则的误杀。当您发现某些域名被 DNS 黑名单误杀时,可以在此处解除阻止。一般用户只需了解以下几种写法:

@@||example.org^ # 对 example.org 及其子域名放行
||example.org^ # 阻止 example.org 域名及其所有子域名
||*.mcdn.bilivideo.cn # 匹配 *.mcdn.bilivideo.cn,并阻止 * 是通配符,表示任意内容

导入 DNS 分流设置

首先找到 Adguard Home 的配置文件 AdGuardHome.yaml。

iStoreOS 的路径为 /etc/AdGuardHome.yaml,Docker 安装的在挂载目录下。

创建下载脚本:

#!/bin/bash

# 定义要下载的文件 URL
URL="https://raw.githubusercontent.com/Leev1s/FAK-DNS/master/converted/FAK-DNS.txt"

# 定义目标文件路径
TARGET_FILE="/etc/FAK-DNS.txt"

# 使用 curl 下载文件
if curl -o "$TARGET_FILE" "$URL"; then
    echo "文件已成功下载到 $TARGET_FILE"
else
    echo "下载失败"
    exit 1
fi

给脚本执行权限:

chmod +x download_fak_dns.sh
sudo ./download_fak_dns.sh

设置定时任务:

# 编辑 crontab 文件:
crontab -e
# 添加定时任务:
# 在打开的编辑器中,添加以下行来设置定时任务:
0 */2 * * * /path/to/your/download_fak_dns.sh
# 保存退出 :wq
# 验证 crontab
crontab -l
sudo crontab -e

然后打开 AdGuardHome.yaml,指定配置文件。