使用iKuai的Docker配置ADGuard Home [+IPV6]

使用iKuai的Docker配置ADGuard Home [+IPV6]

百度上找了一圈又一圈,大部分都是介绍了使用公网 IPV6 地址配置 ADGuard Home,绕了不少弯路。 不过实际配置起来还是挺简单的。 本文手把手介绍使用 fd00 段在 iKuai Docker 上搭建 ADGuard Home 的步骤,并启动内网 IPV6 访问。 (同时也对常见错误如 D

百度上找了一圈又一圈,大部分都是介绍了使用公网 IPV6 地址配置 ADGuard Home,绕了不少弯路。

不过实际配置起来还是挺简单的。

本文手把手介绍使用 fd00 段在 iKuai Docker 上搭建 ADGuard Home 的步骤,并启动内网 IPV6 访问。

(同时也对常见错误如 DNS 查询超时等提供解决方案)

在 iKuai 上启用 Docker 服务

iKuai 上的 Docker 是以插件的形式安装的,所以首先需要绑定 iKuai 云平台,并在 iKuai 云平台中设置。

使用绑定码在云平台上绑定设备

系统设置 -> 爱快云绑定 -> 获取绑定码并绑定

安装 Docker 插件

访问爱快云平台,启用 Docker 插件即可。

插件应用 -> 插件市场 -> Docker 安装
添加设备

创建存储 Docker 配置文件的存储空间

我在磁盘上为 Docker 单独创建了一个名为 config 的分区,用于存储 Docker 的配置数据。

config 挂在路径的分区就是分配给 Docker 使用的分区

转到 “高级应用 ->插件管理 -> Docker”,点击开关启用 Docker 服务,然后点击 服务设置

打开 Docker 开关,然后点击服务设置

在服务设置中设置 Docker 的存储分区为刚刚创建的 config 分区,点击确认保存。

在服务设置中设置存储分区位置

准备安装 ADGuard Home 的环境

打开 “系统设置 -> 文件管理 -> config”,创建一个名为 docker-config 的文件夹。

在系统设置 -> 文件管理中创建 docker-config 文件夹

随后我们在 docker-config 文件夹中再创建一个名为 adguardhome 的文件夹,这就是用于存储 ADGuard Home 配置文件的主文件夹了。

创建了名为 adguardhome 的子文件夹

打开 adguardhome 子文件夹,我们还需要分别创建 workdirconfdir 两个子文件夹,并将会在稍后挂载到 Docker 容器中。

分别创建 workdir 和 confdir

至此,我们需要准备的目录都已创建并准备就绪。

下载 ADGuard Home 的 Docker 镜像

首先打开 Docker Hub,以关键字 Adguard 查找我们需要的镜像。

查找 ADGuard 镜像,第一个 50M+ 下载的就是我们需要的

第一个下载量最多的就是我们需要的镜像了,记下镜像名 adguard/adguardhome

转到 “高级应用 -> 插件管理 -> Docker”,切换到“镜像管理”选项卡,点击添加按钮。

高级应用 -> 插件管理 -> Docker 的 镜像管理 选项卡

在添加对话框中,选择”镜像库下载“,输入 adguard/adguardhome 并点击“搜索”按钮。

在搜索结果中的第一个,点击进入下载页。

选择镜像库下载,点击进入下载页

在下载页面,点击 latest 的下载按钮,下载镜像。

选择 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。

为什么使用 fd00 而非 fc00 段
博主的计算机安装有 Clash 工具,Clash 工作时会将 fc00 划分给虚拟网卡,导致无法访问 fc00 段的任何站点。
如果你的网络环境中无人使用 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 配置生效。

检查 IPv6 设置

解决 DNS 查询超时问题

点击 ADGuard 的 ”设置 -> 常规设置“ 选项卡,取消选中 ”浏览安全“ 和 ”家长控制“ 两个复选框。

由于国内众所周知的原因, AdGuard 无法连接到相对应的服务的服务器,导致 DNS 查询请求阻塞超时。

配置上游 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 服务器。

填写传统数字 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 就会开始生效。

DNS 封锁清单
名称清单网址
CHN: anti-ADhttps://anti-ad.net/easylist.txt
EasyList Chinahttps://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 的查询....

DNS 设置

转到 网络设置 -> DHCP 设置 -> DHCP 服务端,编辑 DHCP 服务。

编辑 DHCP 服务

将首选 DNS 设置为 ADGuard Home。

同样,为了防止 ADGuard 爆炸导致无法上网,同时设置公共 DNS 为备选 DNS。

设置首选 DNS 和备选 DNS

转到 “网络设置 -> IPv6 -> IPv6设置 -> 内网配置”,点击编辑按钮

点击内网配置的编辑按钮

将首选 DNS 设置为 ADGuard Home 的 IPv6 地址。

同样,为了防止 ADGuard 爆炸导致无法上网,同时设置公共 DNS 为备选 DNS。

配置 DNS

至此, AdGuard 便配置完毕。重启 iKuai 和客户机器,从 DHCP 获取新的配置文件,即可生效。

ADGuard 现在已经开始工作了 (平均处理时间并不准确且较高,准确值参考查询日志)
查询日志
Comment