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

树莓派 OpenWrt 利用 Docker 安装 Adguard Home

萝卜
3年前OpenWrt插件阅读 7,635

文章前言

今天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.

    3年前 回复
    • Luobo

      @simon: You are welcome, enjoy it.

      3年前 回复
  • allan

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

    3年前 回复
    • allan

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

      3年前 回复
    • Luobo

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

      3年前 回复
    • 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.

      3年前 回复
    • allan

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

      3年前 回复
    • Luobo

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

      3年前 回复
    • allan

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

      3年前 回复
    • Luobo

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

      3年前 回复
    • allan

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

      3年前 回复
    • Luobo

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

      3年前 回复
    • allan

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

      3年前 回复
    • Luobo

      @allan: 加什么代码?

      3年前 回复
    • allan

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

      3年前 回复
    • Luobo

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

      3年前 回复
    • allan

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

      3年前 回复
  • jxmlingyun

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

    3年前 回复
    • Luobo

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

      3年前 回复
    • jxmlingyun

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

      3年前 回复
    • Luobo

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

      3年前 回复
  • scott

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

    3年前 回复
  • richcup

    感谢提供帮助

    3年前 回复
  • 在你左邊

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

    2年前 回复
    • 萝卜

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

      2年前 回复
  • 1612094995646

    试试

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