|
本帖最后由 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
防火墙的自定义设置
- iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53
- 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 文件就在这里面
(对小白相对友好点)
|
|