前言
此教程适用于家里有台闲置的、可以长期开机的软路由或支持安装docker的系统使用,目前主流的教程都是bridge端口映射,但这种网络模式局限性非常大(需占用53、67…………等一系列重要的端口),所以才有现在这篇教程
安装docker
如果选择1panel来管理容器则不需要这一步(推荐)
国际
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh国内(这里以清华源为例)
export DOWNLOAD_URL="https://mirrors.tuna.tsinghua.edu.cn/docker-ce"
# 如您使用 curl
curl -fsSL https://get.docker.com/ | sh
# 如您使用 wget
wget -O- https://get.docker.com/ | sh检查是否安装成功
docker version安装docker-compose
如果选择1panel来管理容器则不需要这一步(推荐)
curl -L "https://github.com/docker/compose/releases/download/v2.29.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-composeln -s /usr/local/bin/docker-compose /usr/bin/docker-compose检查是否安装成功
docker-compose version安装1panel(推荐)
更换docker镜像源
这里推荐https://docker.1panel.live
创建网络配置
登录1panel——容器——网络——创建网络 名称自定,网络模式选macvlan 剩下配置按你家实际网络环境填
创建容器
名称:adguardhome 镜像(手动输入):adguard/adguardhome 端口:暴露所有 网络:选择刚才创建的macvlan网络时填的名字 ipv4:你家的局域网空闲的IP,这里我填了192.168.3.254 挂载:
/opt/adguardhome/conf /opt/adguardhome/work
没提到的不要填
填完后点确认,等待1panel响应后访问容器IP:3000即可进入安装页
排障
容器启动后仍然无法访问 打开网卡混杂模式
ip link set <主网卡名称> promisc on如果还是不行
可以建一个使用相同网络的容器(奇奇怪怪的bug用奇奇怪怪的方法解决😓 )

这个容器不需要跑任何东西,让它保持开着就行,所以1panel创建该容器时可以选alpine容器Entrypoint项里填
'sleep' 'infinity'推荐的上游DNS
https://dns.alidns.com/dns-query https://cloudflare-dns.com/dns-query
- 不要使用无任何加密的dns,例如直接使用8.8.8.8(中国大陆会搞DNS劫持,例如运营商DNS解析raw.githubusercontent.com就会返回0.0.0.0😓 )