OpenWrt Club OpenWrt Club
  • 首页
  • OpenWrt系统
  • OpenWrt插件
  • OpenWrt固件
  • 友人帐
  • OpneWrt 论坛
  • 注册
  • 登录
首页 › OpenWrt插件 › 树莓派 OpenWrt 利用 Docker 安装 Adguard Home

树莓派 OpenWrt 利用 Docker 安装 Adguard Home

萝卜
6 年前OpenWrt插件阅读 10,669

文章前言

今天eSir的TG群里有人问如何在Lean的OpenWrt下利用Docker 安装Adguard Home,其实我并不知道这个是什么什么东东,抱着解决问题和折腾的心态实践了一下,这里记录一下折腾过程。

对于Adguard Home是什么请自行谷歌,听他们说是可以去广告什么的,其实Lean的OpenWrt固件中已经有了像luci-app-adbyby 和广告屏蔽大师+plus,我想两个软件利用好了也是可以去掉广告的。

实践过程

如果你还没有刷入Lean的固件你可以参考以下文章,特别是树莓派的小伙伴。

  • 如何编译一个属于自己的OpenWrt固件
  • 树莓派Lean大雕OpenWrt固件之编译篇
  • 树莓派Lean大雕OpenWrt固件之食用 Docker 篇

文章是建立在你已经刷入并且成功运行了Docker,如果没有请先把Docker 运行起来。

容器的选择

Adguard Home 官方提供了Docker 镜像,请根据自己的平台拉取对应的镜像:

x86_64:

docker pull adguard/adguardhome

ARM64:

docker pull adguard/adguardhome:arm64-v0.99.0

后面带有arm64标识的是像树莓派这样的,不然你会发现无法运行

运行镜像

运行容器之前必须建立两个配置目录:

mkdir workdir confdir

注意我这里在root的根目录下建立的,如果你不是请将下面运行代码中的$PWD修改为你的目录。

官方已经给出了运行代码:

docker run --name adguardhome -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/tcp -p 68:68/udp -p 80:80/tcp -p 443:443/tcp -p 853:853/tcp -p 3000:3000/tcp -d adguard/adguardhome

如果你的OpenWrt 装有WEB管理界面LUCI的话是跟有端口冲突的,而且固件默认也是安装有dnsmasq,这样80端口53端口和67端口都被占用,所以你会发现无法运行docker。

解决办法

解决办法有两种:

  1. 修改UHTTPD和DNSMASQ监听的端口
  2. 修改Adguard Home的映射端口为其他

第一种方法简单,但是后续会有很多麻烦,比如一些服务需要用到dnsmasq的53端口,所以我选择第二种

  1. 将本机的808端口映射到Adguard Home的80端口
  2. 将本机的5353端口映射到Adguard Home的53端口
  3. 将本机的69端口映射到Adguard Home的67端口(这个端口不知道干啥用,临时先改成别的)

重新启动Docker容器:

docker run --name adguardhome -v $PWD/workdir:/opt/adguardhome/work -v $PWD/confdir:/opt/adguardhome/conf -p 5335:53/tcp -p 5353:53/udp -p 69:67/udp -p 68:68/tcp -p 68:68/udp -p 808:80/tcp -p 443:443/tcp -p 853:853/tcp -p 3000:3000/tcp -d adguard/adguardhome:arm64-v0.99.0

查看容器是否成功启动:

docker ps
树莓派 OpenWrt 利用 Docker 安装 Adguard Home-OpenWrt Club

看STATUS状态已经成功运行

查看一下docker监听的5353端口:

树莓派 OpenWrt 利用 Docker 安装 Adguard Home-OpenWrt Club

安装设置

docker容器已经成功启动,下面需要访问Adguard home的WEB界面进行设置,在浏览器内输入:

https://192.168.1.254:3000
树莓派 OpenWrt 利用 Docker 安装 Adguard Home-OpenWrt Club

下面保持默认

树莓派 OpenWrt 利用 Docker 安装 Adguard Home-OpenWrt Club

输入Adguard的管理用户名和密码:

树莓派 OpenWrt 利用 Docker 安装 Adguard Home-OpenWrt Club

下面显示的是一些平台上的设置教程:

树莓派 OpenWrt 利用 Docker 安装 Adguard Home-OpenWrt Club

树莓派 OpenWrt 利用 Docker 安装 Adguard Home-OpenWrt Club

点击打开仪表盘默认会跳到80端口,在浏览器里访问你启动Docker时映射的端口,这里是808。

树莓派 OpenWrt 利用 Docker 安装 Adguard Home-OpenWrt Club

输入用户名密码登录

树莓派 OpenWrt 利用 Docker 安装 Adguard Home-OpenWrt Club

顺利进入后台,至于如何使用我就不啰嗦了相信你比我会用。

目前就一个问题,首次登录后台后会有一个错误提示:

Error: control/version.json | New app version check is disabled by user | 500

看名字是个什么控制台的版本文件,临时没有问题就不解决它了。

好了以上就是我折腾的笔记,如果你遇到问题欢迎留言,也欢迎点赞~

如果你有什么想折腾的也可以告诉我,我将亲手实验一番。

问题

打开Docker 日志,有以下问题:

2019/10/22 11:16:20 [info] Couldn't request filter from URL https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt, skipping: Get https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt: couldn't lookup host: adguardteam.github.io
2019/10/22 11:16:20 [info] Failed to update filter https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt: Get https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt: couldn't lookup host: adguardteam.github.io

2019/10/22 11:16:20 [error] os.Chtimes(): chtimes /opt/adguardhome/work/data/filters/1.txt: no such file or directory

Adguard Home在成功运行后会现在一些配置文件,下载网址是被墙了,所以你懂的。

解决办法

两种,一种是你手动下载提示中的文件,上传到我们新建的workdir/data/filter/1.txt

第二种比较简单,就是全局自然与科学,然后重启容器,再看日志会看到以下提示:

Saving filter 1 contents to: /opt/adguardhome/work/data/filters/1.txt
树莓派 OpenWrt 利用 Docker 安装 Adguard Home-OpenWrt Club

再回到后台刷新一下,是不是一些奇奇怪怪的问题都解决了?问题我会持续更近,如果你遇到问题欢迎留言。

filters.txt
下载文件后上传到对应的目录重启Docker
类型: TXT 大小: 1kb

后续问题

文章发布后有些朋友反映了不可以用的问题,系统默认使用了Dnsmasq来做DNS解析,并且占用了53端口,我们映射的时候使用了非标端口,如果你想直接使用ADHOME来做DNS查询可以停用掉Dnsmasq,然后修改docker的网络模式为host。

具体操作如下:

#停止adhome
docker stop 容器名称
# 删除容器
docker rm 容器名称
# 停止DNSMASQ服务
service dnsmasq stop
# 指定network为host,修改端口为53
docker run --network=host --name adhome -v $PWD/workdir:/opt/adguardhome/work -v $PWD/confdir:/opt/adguardhome/conf -p 53:53/tcp -p 5353:53/udp -p 60:67/udp -p 68:68/tcp -p 68:68/udp -p 808:80/tcp -p 443:443/tcp -p 853:853/tcp -p 3000:3000/tcp -d adguard/adguardhome

还有个问题是80端口的问题,默认uhttpd 服务占用了80端口,如果你想修改可以做如下操作:

#打开配置文件
vim /etc/config/uhttpd

把80端口修改成任意端口,比如808

config uhttpd 'main'
        list listen_http '0.0.0.0:808'
        list listen_http '[::]:808'
        option redirect_https '0'
        option home '/www'
        option rfc1918_filter '1'
        option max_requests '3'
        option max_connections '100'
        option cert '/etc/uhttpd.crt'
        option key '/etc/uhttpd.key'
        option cgi_prefix '/cgi-bin'
        list lua_prefix '/cgi-bin/luci=/usr/lib/lua/luci/sgi/uhttpd.lua'
        option script_timeout '60'
        option network_timeout '30'
        option http_keepalive '20'
        option tcp_keepalive '1'
        option ubus_prefix '/ubus'
        list index_page 'cgi-bin/luci'

config cert 'defaults'
        option days '730'
        option bits '2048'
        option country 'ZZ'
        option state 'Somewhere'
        option location 'Unknown'
        option commonname 'OpenWrt'

保存退出后重启uhttpd服务:

/etc/init.d/uhttpd restart

最后修改docker映射的端口为正常的80即可。

Adguard Docker OpenWrt OpenWrt功能
赞(13) 收藏(0)
如何在VPS服务器上编译 OpenWrt 固件
上一篇
Docker上运行Lean大源码编译的OpenWRT(初稿)
下一篇
再想想
所有评论(26)
  • simon

    very good, just want to try this. thanks for share.

    6 年前 回复
    • Luobo

      @simon: You are welcome, enjoy it.

      6 年前 回复
  • allan

    在lede docker 按照博主的内容改了端口,还是没法启动成功

    6 年前 回复
    • allan

      @allan: 请博主指导一下,页面显示启动成功麻烦就自动退出

      6 年前 回复
    • Luobo

      @allan: 你需要看一下有什么报错,不然docker logs -f 容器名称, 这样来看容器的日志。

      6 年前 回复
    • allan

      @Luobo: 它是这样显示….找不到主机
      error during connect: Post http://docker:2375/v1.40/containers/create?name=adguardhome: dial tcp: lookup docker on 223.5.5.5:53: no such host.

      6 年前 回复
    • allan

      @Luobo: 不加任何代码能启动,但进不了管理界面。如果加官方提供的代码或者学博主改端口,都是显示启动成功就立刻退出。对docker我也不懂

      6 年前 回复
    • Luobo

      @allan: 我还真没遇到过,这是docker的日志吗

      6 年前 回复
    • allan

      @Luobo: 是的,也网上搜索了一下相关问题,大概意思lede路由上用官方代码不成,要自己写什么代码上去,神器在手却不懂用,囧

      6 年前 回复
    • Luobo

      @allan: 我测试没遇到这个问题,不过我更新了后续问题,你可以看一下,在运行的时候指定docker的网络为host,就是本机网络,应该就可以了。

      6 年前 回复
    • allan

      @Luobo: 感谢提供帮助,试了下还是不行,问题依旧

      6 年前 回复
    • Luobo

      @allan: 你这是在运行adhome的时候出现的错误,还是安装好后出现的错误啊。

      6 年前 回复
    • allan

      @Luobo: 加入代码后运行adhome出现错误,不加任何代码能运行起来

      6 年前 回复
    • Luobo

      @allan: 加什么代码?

      6 年前 回复
    • allan

      @Luobo: 就是官方或你上面提供的运行代码,端口映射这些,都试过了

      6 年前 回复
    • Luobo

      @allan: 你肯定什么地方弄错了,根据自己的情况修改docker的启动参数。如果你在eSir的群里可以私聊我

      6 年前 回复
    • allan

      @Luobo: 十分感谢教程和帮助,学习了一下docker指令终于搞掂可以使用了~嘻嘻

      6 年前 回复
  • jxmlingyun

    0
    Blocked by Filters
    过滤器也加了,一直显示广告拦截数为0,实际上也没有屏蔽广告,不知道什么原因?

    6 年前 回复
    • Luobo

      @jxmlingyun: 可能没有通过软件的DNS进行查询

      6 年前 回复
    • jxmlingyun

      @Luobo: 我的adguardhome也是安装在路由器上,我电脑的dns也设置成路由器ip了,这样的话应该是要走adguardhome的dns查询吧。或者还有其他的地方需要设置?

      6 年前 回复
    • Luobo

      @jxmlingyun: 这个不一定,docker运行的时候指定网络为hosts试试看,把openwrt的dnsmasq关闭,不过我感觉这软件也没啥用啊,用dnsmasq 完全可以达到同样的效果。

      6 年前 回复
  • scott

    正需要解决,希望下载文件可以解决500问题。

    6 年前 回复
  • richcup

    感谢提供帮助

    5 年前 回复
  • 在你左邊

    #打开配置文件
    vim /etc/config/uthhpd 打錯了,是uhttpd

    5 年前 回复
    • 萝卜

      @在你左邊: 多谢提醒,已经修改过来了

      5 年前 回复
  • 1612094995646

    试试

    4 年前 回复
聚合文章
解决OpenWrt 挂载Overlay 分区重启失效
OpenWrt 使用 Luci-app-frpc 配合Docker 内网穿透
OpenWrt 利用Docker 搭建Cloud Torrent 下载BT/PT种子
Ubuntu 18.04 编译OpenWRT遇到libwebsockets 重复问题
云标签
Adguard BT下载 Compose Docker LEDE OpenSSL OpenWrt OpenWrt功能 PassWall PT下载 Torrent Ubuntu 个性修改 内网穿透 固件编译 扩容 服务器 树莓派 端口映射 网站环境
解决OpenWrt 挂载Overlay 分区重启失效
2 年前
910 0 0
OpenWrt 使用 Luci-app-frpc 配合Docker 内网穿透
5 年前
7,736 1 2
OpenWrt 利用Docker 搭建Cloud Torrent 下载BT/PT种子
5 年前
4,524 0 5
Ubuntu 18.04 编译OpenWRT遇到libwebsockets 重复问题
5 年前
3,508 0 0
26 13
  • 13
  • 26
Copyright © 2019-2025 OpenWrt Club. Designed by nicetheme.
  • 首页
  • OpenWrt系统
  • OpenWrt插件
  • OpenWrt固件
  • 友人帐
  • OpneWrt 论坛
萝卜
茕茕孑立,孑孓而行。
14
文章
36
评论
107
喜欢