找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 23831|回复: 281

来,教你轻松用host网络模式建立两个AdGuardHome,避免bridge或者macvlan网络的各种坑

 火... [复制链接]
本帖最后由 lriigiht 于 2023-10-1 18:48 编辑

首先声明:
  • 本贴面向的是有点点基础的普通小白,你是大神肯定有自己的方法
  • 如果你的想法和我说的有冲突,一切以你为准,你开心就好
  • 我说的不一定都对,要学会自己思考内在逻辑和寻早答案
  • 如果我的方法看起来很蠢,可能我只是为了照顾小白


本贴目的:
macvlan 或 bridge 网络模式,特别是各种子网之间相互访问,可能对小白有各种设置的坑。

host 模式的 AdGuardHome,你可以看成一个依附在宿主机上的程序,
通过创建 host 模式的 AdGuardHome,(至少我看来是这样)
可以避免踩不少奇奇怪怪的坑。


延伸阅读:



言归正传
首先是惯例:
游客,如果您要查看本帖隐藏内容请回复


先 SSH 连上软路由,我们先用常规默认的bridge网络模式创建一个AdGuardHome的容器 ——
用哪个 AGH,看你喜好,我这里选 ksey 编译的


(2023年10月01日添加:还是推荐AGH官方的镜像,ksey好久不更新编译了。官方版[ https://hub.docker.com/r/adguard/adguardhome ] 的beta tag,前些日子statistics里还多了每个upstream DNS的query平均时间和query次数,很实用。只需要注意映射路径不同,官方版有说明的。但是不用映射那么多端口,完全没必要,类似我下面那样,先映射一个管理口,跑一个容器来生成配置文件,然后修改配置文件,改端口就行了。原理大同小异。)

  1. docker run -d \
  2.         --name AdGuardHome \
  3.         -p 23456:3000 \
  4.         -v /root/AdGuardHome_CN:/opt/AdGuardHome/data \
  5.         --restart always \
  6.         ksey/adguardhome
复制代码

只需要映射一个 23456 端口到 3000 就行了,
注意外部的 23456 端口可能的冲突,根据你的需求自行更改
(我取这种奇葩端口只是为了方便小白理解,后文同理)


接着浏览器地址栏输入 路由IP:23456
简单设置好AdGuardHome密码,保存后,我们第一步工作就完成了


现在你可以把这个用 bridge 的 docker 网络模式的 AdGuardHome 容器删除,

这一步目的其实只有一个,创建一个配置好基本参数的 AdGuardHome.yaml (在 /root/AdGuardHome_CN 目录下 )

如果你有现成的 AdGuardHome.yaml,可以跳过这步


接下来打开 /root/AdGuardHome_CN 目录下的 AdGuardHome.yaml 修改两处端口号
  1. bind_host: 0.0.0.0
  2. bind_port: 3000
复制代码

yaml 文件第二行的 3000,是 AdGuardHome 的管理端口,
host 模式我们看成依附在宿主机的一个程序,为了避免和其他程序使用端口冲突,这里按你的需求修改
比如我改成
  1. bind_host: 0.0.0.0
  2. bind_port: 21000
复制代码

AdGuardHome.yaml 下还需要修改一处

  1. dns:
  2.   bind_hosts:
  3.   - 0.0.0.0
  4.   port: 53
复制代码
这个是容器提供DNS解析的端口,为了避免冲突,53端口需要修改,
比如我改成
  1. dns:
  2.   bind_hosts:
  3.   - 0.0.0.0
  4.   port: 30053
复制代码

再次SSH连上路由
  1. docker run -d \
  2.         --name AdGuardHomeCN \
  3.         --network host \
  4.         -v /root/AdGuardHome_CN:/opt/AdGuardHome/data \
  5.         --restart always \
  6.         ksey/adguardhome
复制代码

这样,你已经创建好了一个 host 模式的 AdGuardHome

现在你可以通过 路由IP:21000 访问这个 AdGuardHome 容器的管理页面
局域网可以通过 路由IP:30053 获得这个 AdGuardHome 的 DNS 解析
你可以把 路由IP:30053 作为 dnsmasq 的上游,给 Passvva11 调用(具体参考其他帖子)

用类似方法,自己修改端口号和文件映射抵制,注意避免端口冲突,
可以创建第二个作为AdGuardHome,以实现变相对DNS内外网分组


好了,尽情玩耍吧


我的恩山、我的无线 The best wifi forum is right here.
 楼主| | 显示全部楼层
本帖最后由 lriigiht 于 2022-6-28 05:41 编辑

先占个2楼

原理很简单,docker 创建AdGuardHome 容器,会首先读取目标路径下 AdGuardHome.yaml 的配置,有配置就按配置启动,
host 模式的 AdGuardHome,管理端口和解析端口,
只要和路由上其他应用端口不冲突就能创建容器



如果想要 AdGuardHome 看到局域网都是谁在请求DNS解析
简单的方法是,dnsmasq 的 53 端口,改成其他端口,比如5553
然后弄一个 host 网络的 AGH 到 53 端口
AGH 的 上游,填 127.0.0.1:5553
防火墙的自定义设置
  1. iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53
  2. iptables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53
复制代码
保留,这两段意思是劫持局域网所有对外 53 的请求 到路由的 53 端口


dnsmasq 和 Pa$$vva11 你还可以继续套两个娃(再来两个AGH,或者两组SmartDNS),作为内外的分组



套娃肯定有速度损失的,就算本地udp数据交互,AGH>>dnsmasq>>本地其他dns,
这样套大概会增加6ms左右的解析延迟。


(如果做两层大缓存,加上AGH在dnsmasq之前,AGH的查询似乎比dnsmasq更高效一点,一来一回,这个损失似乎也可以接受?)




甚至还有跳过dnsmasq,用AGH的ipset,不套娃也可以的,


个人觉得略复杂,而且还需要AGH导入一大堆列表
有兴趣自行研究






关于 docker 映射路径的小补充:



官方版 和 ksey 版,需要映射的路径有些许不同




官方版建议是 映射两个文件夹分别给
/opt/adguardhome/conf
/opt/adguardhome/work
AdGuardHome.yaml 文件存放在 /opt/adguardhome/conf 下


ksey 版,是映射一个文件夹给
/opt/AdGuardHome/data
AdGuardHome.yaml 文件就在这里面
(对小白相对友好点)
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

终于等到你!新鲜热辣!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

顶楼主,看教程~~~~~~~~~~~~~~~~
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

感谢大佬分享。学习一下。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

那就学习一番吧,哈哈哈
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

看看怎么样
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

来自手机 | 显示全部楼层
谢谢分享
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

回复可见
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

我是来学习的!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

好东东,先学习一下啦!!!!!!!!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

赞赞赞赞
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

来学习一下
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

来自手机 | 显示全部楼层
来看一看怎么设置
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-27 08:20

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表