社长Docker折腾记录 如何在OpenWrt系统Docker下使用AdGuard Home插件?
上次分享了OpenWrt系统下AdGuard Home
插件的用法,这次介绍下使用docker安装AdGuard Home使用方法,原因是我的OpenWrt系统上周崩溃了,这次换一种不同的玩法试试。
Docker空间默认很小,如何扩容看我前篇文章《OpenWrt软路由下docker空间太小了!简单扩容教程》
官方项目地址:
https://hub.docker.com/r/adguard/adguardhome
拉取 Docker 镜像
此命令将提取最新的稳定版本:
docker pull adguard/adguardhome
为持久配置和数据创建目录
该映像公开了两个卷,用于数据和配置持久性。你 应该在主机系统上的合适卷上创建一个数据目录, 例如,以及合适卷上的配置目录 在您的主机系统上,例如 ./my/own/workdir``/my/own/confdir
创建并运行容器
使用以下命令创建新容器并运行 AdGuard 主页:
docker run --name adguardhome\
--restart unless-stopped\
-v /my/own/workdir:/opt/adguardhome/work\
-v /my/own/confdir:/opt/adguardhome/conf\
-p 53:53/tcp -p 53:53/udp\
-p 67:67/udp -p 68:68/udp\
-p 80:80/tcp -p 443:443/tcp -p 443:443/udp -p 3000:3000/tcp\
-p 853:853/tcp\
-p 784:784/udp -p 853:853/udp -p 8853:8853/udp\
-p 5443:5443/tcp -p 5443:5443/udp\
-d adguard/adguardhome
现在,您可以打开浏览器并导航到要控制的 http://127.0.0.1:3000/ 您的 AdGuard Home 服务。
不要忘记使用自己的数据和配置目录!
您可能需要的端口映射:
-p 53:53/tcp -p 53:53/udp
:纯 DNS。-p 67:67/udp -p 68:68/tcp -p 68:68/udp
:如果您打算使用 AdGuard 则添加 主页作为 DHCP 服务器。-p 80:80/tcp -p 443:443/tcp -p 443:443/udp -p 3000:3000/tcp
:添加,如果您 将使用AdGuard Home的管理面板以及运行AdGuard Home作为 HTTPS/DNS-over-HTTPS 服务器。-p 853:853/tcp
:如果您打算将 AdGuard Home 运行为 TLS 上的 DNS 服务器。-p 784:784/udp -p 853:853/udp -p 8853:8853/udp
:如果要添加 将 AdGuard Home 作为 DNS-over-QUIC 服务器运行。您只能留下一个 或其中两个。-p 5443:5443/tcp -p 5443:5443/udp
:如果要运行 AdGuard 添加 Home 作为 DNSCrypt 服务器。
上面是官方的镜像使用说明,下面我们在OpenWrt系统下实操一下!
打开Docker选项
第一步先拉取镜像,可以ssh登录系统后用上面的命令拉取,也可以在镜像那输入adguard/adguardhome
来拉取。
Docker→容器→添加→解析CLI这里无脑复制官方给的代码即可,不用看别的教程自己优化代码啥的,我之前还想着自定义一下,发现根本跑不起来( ̄▽ ̄)~*,然后提交即可!
网络这里改成host模式
,不要使用桥接模式,然后点下面的提交。
之后来到容器,选中adguardhome点击启动即可!
现在,打开浏览器输入 http://主路由IP:3000/ 即可打开AdGuard Home 面板了。
AdGuard Home使用方法
剩下的AdGuard Home
设置方法、如何使用就和之前一样了,不会使用的可以看我前篇文章《OpenWrt 保姆级AdGuard Home 设置广告拦截&加快DNS解析网页秒开》!
Docker版本的AdGuard Home
有两点需要注意:
第一是端口最开始是IP:3000 设置的时候会提示被占用,需要改成别的端口,53端口作为DNS服务监听端口也是被占用的,可以改成其他端口。
AdGuard Home服务器的配置完成后,怎么设置生效?因为没有像插件一样可以直接重定向以及作为上游服务器或者直接替换53端口,经过我测试研究查找资料,终于设置成功!
恩山大佬总结如下:
WAN口dns
客户机dns解析请求>>>>路由器用自定义dns回应LAN 口dns
路由器自身dns解析请求用自定义dns回应lan口DHCP
通告路由器下发自定义dns,客户机自行使用下发的自定义dns完成解析请求DHCP/DNS里
的dns转发客户机dns解析请求>>>>路由器转发dns解析请求
一开始的想法是直接修改LAN口的自定义DNS发现不支持端口号,无奈放弃。
作为dnsmasq的上游服务器
直接输入IP+端口号
使用DHCP/DNS里的Dns转发功能就相当于插件版本的作为dnsmasq的上游服务器
,这样解析记录全是127.0.0.1不能看到具体客户端的响应请求,我不喜欢,放弃!
使用53端口替换dnsmasq服务器
这种模式是dnsmasq服务器直接停止了,让AdGuard Home来接管dns解析请求,我没有测试,应该是一开始就要先把dnsmasq使用的53端口改了,然后AdGuard Home初始化的时候53端口就释放出来了,就能直接使用。
重定向53端口到AdGuard Home
社长docker版本采用这个方式,设置比较简单,原理是53端口的dns请求被重定向到了你设置的端口,相当于打麻将的截胡吧!
网络→防火墙→自定义规则
默认是53端口,把上图标注的地方改成你设置的端口号即可!
然后随便打开几个网页刷新一下,来到AdGuard Home后台可以看到已经生效了。
这是我运行了几个小时的结果,可以看到平均DNS解析时间还是很快的,本次的Docker下使用AdGuard Home就分享到这里,有疑问欢迎留言。