百度上找了一圈又一圈,大部分都是介绍了使用公网 IPV6 地址配置 ADGuard Home,绕了不少弯路。
不过实际配置起来还是挺简单的。
本文手把手介绍使用 fd00 段在 iKuai Docker 上搭建 ADGuard Home 的步骤,并启动内网 IPV6 访问。
(同时也对常见错误如 DNS 查询超时等提供解决方案)
在 iKuai 上启用 Docker 服务
iKuai 上的 Docker 是以插件的形式安装的,所以首先需要绑定 iKuai 云平台,并在 iKuai 云平台中设置。
使用绑定码在云平台上绑定设备
安装 Docker 插件
访问爱快云平台,启用 Docker 插件即可。
创建存储 Docker 配置文件的存储空间
我在磁盘上为 Docker 单独创建了一个名为 config
的分区,用于存储 Docker 的配置数据。
转到 “高级应用 ->插件管理 -> Docker”,点击开关启用 Docker 服务,然后点击 服务设置
。
在服务设置中设置 Docker 的存储分区为刚刚创建的 config
分区,点击确认保存。
准备安装 ADGuard Home 的环境
打开 “系统设置 -> 文件管理 -> config”,创建一个名为 docker-config
的文件夹。
随后我们在 docker-config
文件夹中再创建一个名为 adguardhome
的文件夹,这就是用于存储 ADGuard Home 配置文件的主文件夹了。
打开 adguardhome
子文件夹,我们还需要分别创建 workdir
和 confdir
两个子文件夹,并将会在稍后挂载到 Docker 容器中。
至此,我们需要准备的目录都已创建并准备就绪。
下载 ADGuard Home 的 Docker 镜像
首先打开 Docker Hub,以关键字 Adguard
查找我们需要的镜像。
第一个下载量最多的就是我们需要的镜像了,记下镜像名 adguard/adguardhome
。
转到 “高级应用 -> 插件管理 -> Docker”,切换到“镜像管理”选项卡,点击添加按钮。
在添加对话框中,选择”镜像库下载“,输入 adguard/adguardhome
并点击“搜索”按钮。
在搜索结果中的第一个,点击进入下载页。
在下载页面,点击 latest
的下载按钮,下载镜像。
配置 Docker 的网络接口
进入 ”高级应用 -> 插件管理 -> Docker“ 并切换到接口管理选项卡,点击添加按钮。
如图所示,我创建了一个接口名称为 doc_docker_full
的接口,IPv4 地址为 192.168.77.0/24
,IPv4 网关为 192.168.77.1
,开启 IPv6。
IPv6 地址我们填写 fd00::/64
,IPv6 网关填写 fd00::1
。将 fd00 段分配给 Docker。
如果你的网络环境中无人使用 Clash,则可以使用 fc00 段,只需将本教程后面的 fd00 替换为 fc00。
创建后如图所示则为创建成功。
创建容器、挂载目录、配置 IP 地址
返回 ”高级应用 -> 插件管理 -> 容器列表“,点击添加按钮
我们创建一个名为 adguard
的容器,并分配 256MB 运行内存。
选择刚刚下载的 adguard/adguardhome:latest
镜像文件,并使用刚刚创建的 doc_docker_full
网络接口。
给其分配 v4v6 地址,并勾选”开机自启“。
在本示例中,我分配的 IPv4 地址为 192.168.77.3
,IPv6 地址为 fd00::3
。
点击展开”高级设置“,我们配置挂载目录,给 ADGuard 一个保存配置文件的地方。
- 源路径:
/config/docker-config/adguardhome/workdir
目标路径:/opt/adguardhome/work
- 源路径:
/config/docker-config/adguardhome/confdir
目标路径:/opt/adguardhome/conf
保存即可,此时我们的 ADGuard 应该就开始运行了。
配置 ADGuard
浏览器访问 192.168.77.3,根据向导完成基础配置即可。
验证 IPv6 是否启用
点击 ADGuard 的 ”设置向导“ 选项卡,检查是否已分配 IPv6 地址。如有,则 IPv6 配置生效。
解决 DNS 查询超时问题
点击 ADGuard 的 ”设置 -> 常规设置“ 选项卡,取消选中 ”浏览安全“ 和 ”家长控制“ 两个复选框。
配置上游 DNS 服务器和 Bootstrap 服务器
为了防止运营商 DNS 劫持,我使用了 DoT DNS 服务器,如果你没有特殊需求,可以直接填传统 DNS 服务器 IP 地址。
需要注意的是:你的 DNS 服务器应该支持 IPv6 地址解析/访问。
我使用以下的上游 DNS 服务器。
tls://dns.alidns.com
tls://dot.pub
tls://dns.google
向下滚动,找到 Bootstrap 服务器。
我们发现上游 DNS 服务器可以是域名的形式,但 DNS 就是为了转换域名为数字 IP。
而为了解析上游 DNS 服务器列表中的域名 DNS 服务器,我们需要传统的数字 IP 的 Bootstrap 服务器。
为了最佳速度,这里建议填写你的运营商的 DNS 服务器。
我的环境为山东联通,使用联通的 DNS 服务器:
202.102.154.3
202.102.152.3
223.5.5.5
2408:8899::8
2408:8888::8
设置 DNS 过滤器清单
转到 “过滤器 -> DNS 封锁清单”,按需添加和启用过滤规则,AdGuard 就会开始生效。
名称 | 清单网址 |
CHN: anti-AD | https://anti-ad.net/easylist.txt |
EasyList China | https://easylist-downloads.adblockplus.org/easylistchina+easylist.txt |
乘风 | https://gitee.com/xinggsf/Adblock-Rule/raw/master/rule.txt |
分发 DNS 给客户机
转到 “网络设置 -> DNS 设置”,设置首选DNS为 ADGuard Home。
为了防止 ADGuard 爆炸导致无法上网,同时设置公共 DNS 为备选 DNS。
需要注意,不要开启 DNS 加速服务劫持 DNS,不然我不能保证 iKuai 会不会劫持走 AdGuard 的查询....
转到 网络设置 -> DHCP 设置 -> DHCP 服务端,编辑 DHCP 服务。
将首选 DNS 设置为 ADGuard Home。
同样,为了防止 ADGuard 爆炸导致无法上网,同时设置公共 DNS 为备选 DNS。
转到 “网络设置 -> IPv6 -> IPv6设置 -> 内网配置”,点击编辑按钮
将首选 DNS 设置为 ADGuard Home 的 IPv6 地址。
同样,为了防止 ADGuard 爆炸导致无法上网,同时设置公共 DNS 为备选 DNS。
至此, AdGuard 便配置完毕。重启 iKuai 和客户机器,从 DHCP 获取新的配置文件,即可生效。