本文共2942字,快速阅读仅需2分钟。

2022年4月10日,此篇有更新

需要安装双AdGuardHome的看这里

通过Docker安装双AdGuardHome在OpenWrt分流解析DNS

本人使用N1盒子作为旁路由,分别设置了,境内和境外两套DNS服务,这样不论是速度还是纯净都有了保障。
另外,该方法只适用于斐讯N1盒子,其他设备不能直接使用,需要对路径/mnt/mmcblk1p3/进行修改,这里不展开叙述。

1.删除原配置(未装过请忽略,并跳转至第二点)

如果以前装过docker版的adg,先删除原有容器和相关配置。
具体命令如下:

docker stop adguardhome
docker rm adguardhome
rm -rf /mnt/mmcblk1p3/adguardhome/confdir/*
rm -rf /mnt/mmcblk1p3/adguardhome/workdir/*
# 抓取最新版镜像(需要全局模式)(可选)
docker pull adguard/adguardhome:arm64-latest
# 清理镜像垃圾(可选)
docker image prune -f
# 启动容器(用hostnet)
docker run --name adguardhome \
-v /mnt/mmcblk1p3/adguardhome/workdir:/opt/adguardhome/work \
-v /mnt/mmcblk1p3/adguardhome/confdir:/opt/adguardhome/conf \
--restart always \
--net host \
-d adguard/adguardhome:arm64-latest</code></pre><h2>2.安装单adguardhome</h2><p>如果不需要双容器,只用一套adguardhome同时处理国内外dns的,只需执行具体命令如下(以N1为例):</p><pre><code>docker pull adguard/adguardhome:arm64-latest
mkdir -p /mnt/mmcblk1p3/adguardhome/confdir
mkdir -p /mnt/mmcblk1p3/adguardhome/workdir
# 启动容器(用hostnet)
docker run --name adguardhome \
-v /mnt/mmcblk1p3/adguardhome/workdir:/opt/adguardhome/work \
-v /mnt/mmcblk1p3/adguardhome/confdir:/opt/adguardhome/conf \
--restart always \
--net host \
-d adguard/adguardhome:arm64-latest

注意:之后进入 http://路由器ip:3000/ 初始化设置,设置时需要改两个端口:80(我改成2080),53(我改成1053)初始化完成后,用2080端口即可进入主界面。把adg服务端口(1053)设置为dnsmasq的上游,具体方法:打开openwrt的"网络“->"DHCP/DNS", "DNS转发"设为 127.0.0.1#1053

到此,安装单docker就成功了。如果你需要安装双AdGuardHome,那么继续往下看。

3.安装双adguardhome

双Adg容器用法:第一个adg主要用于国内网站的去广告和dns处理,再建第二个adg容器专门用于国外dns处理。两个容器分别处理国内dns和国外dns,两套体系,不混在一起。

# 第1个(国内) 80改成1080,53改成1053
mkdir -p /mnt/mmcblk1p3/adguardhome/confdir
mkdir -p /mnt/mmcblk1p3/adguardhome/workdir
# 启动容器(用hostnet)
docker pull adguard/adguardhome:arm64-latest
docker run --name adguardhome \
-v /mnt/mmcblk1p3/adguardhome/workdir:/opt/adguardhome/work \
-v /mnt/mmcblk1p3/adguardhome/confdir:/opt/adguardhome/conf \
--restart always \
--net host \
-d adguard/adguardhome:arm64-latest

注:此adg的上游dns设成国内比较快的dns, 然后修改dnsmasq的上游dns为 127.0.0.1#1053,打开openwrt的"网络“->"DHCP/DNS", "DNS转发"设为 127.0.0.1#1053。

先配置好第1个,再运行第2个,否则3000端口会冲突

# 第2个(国外) 80改成1081,53改成5335。

mkdir -p /mnt/mmcblk1p3/adguardhome/confdir_gfw
mkdir -p /mnt/mmcblk1p3/adguardhome/workdir_gfw

启动容器(用hostnet)

docker run --name adguardhome_gfw \
-v /mnt/mmcblk1p3/adguardhome/workdir_gfw:/opt/adguardhome/work \
-v /mnt/mmcblk1p3/adguardhome/confdir_gfw:/opt/adguardhome/conf \
--restart always \
--net host \
-d adguard/adguardhome:arm64-latest

注:此adg的上游dns设成国外知名dns,再到科学插件里设置好使用国外dns,一般是用pdnsd或基于5335端口的dns。