概览
编排解释:
启动 AdGuard Home 容器(版本
v0.107.75,可替换成 latest)。映射持久化数据(工作目录和配置文件分别挂载到
./data/work和./data/conf,方便备份和迁移)。暴露全协议端口(覆盖 DNS、DHCP、DoH、DoT、QUIC 等常见协议)。
配置资源限制(通过环境变量控制 CPU 和内存,避免抢占服务器资源)。
yaml
networks:
1panel-network:
external: true
services:
adguardhome:
container_name: ${CONTAINER_NAME}
deploy:
resources:
limits:
cpus: ${CPUS}
memory: ${MEMORY_LIMIT}
image: adguard/adguardhome:v0.107.75
labels:
createdBy: Apps
networks:
- 1panel-network
// [!code fold:start]
ports:
- ${PANEL_APP_PORT_DNS}:53/tcp
- ${PANEL_APP_PORT_DNS}:53/udp
- ${PANEL_APP_PORT_DHCP_1}:67/udp
- ${PANEL_APP_PORT_DHCP_2}:68/udp
- ${PANEL_APP_PORT_HTTP_1}:80/tcp
- ${PANEL_APP_PORT_DOH}:443/tcp
- ${PANEL_APP_PORT_DOH}:443/udp
- ${PANEL_APP_PORT_HTTP}:3000/tcp
- ${PANEL_APP_PORT_DOT}:853/tcp
- ${PANEL_APP_PORT_QUIC_1}:784/udp
- ${PANEL_APP_PORT_DOT}:853/udp
- ${PANEL_APP_PORT_QUIC_2}:8853/udp
- ${PANEL_APP_PORT_DNS_CRYPT}:5443/tcp
- ${PANEL_APP_PORT_DNS_CRYPT}:5443/udp
restart: on-failure:5
volumes:
- ./data/work:/opt/adguardhome/work
- ./data/conf:/opt/adguardhome/conf
- /opt/1panel/www/sites/dns/ssl:/opt/adguardhome/ssl细节解释
1. 版本锁定(镜像标签)
使用 adguard/adguardhome:v0.107.75 可以替换成 latest。
AdGuard Home 的新版本有时会调整配置结构或 API,锁定版本能避免夜间自动更新导致家里网络突然“断网”。
2. 资源控制(deploy 配置)
deploy.resources.limits.cpus和memory通过环境变量{MEMORY_LIMIT}注入。AdGuard Home 本身很轻量,一般给 0.5 核 CPU 和 256MB~512MB 内存足够应对几十台设备的 DNS 请求。设置限制可以防止因 DNS 攻击或日志积压拖垮宿主机。
3. 端口映射(全覆盖)
DNS 核心:53(TCP/UDP)
安全 DNS:DoH(443)、DoT(853)、DNS-over-QUIC(784/8853)
管理后台:3000(Web UI)
DHCP 服务:67/68(UDP)
DNSCrypt:5443
注意:该模板默认同时暴露了大量端口,如果你的环境是家庭内网,建议仅开放 53 和 3000,其他端口按需打开即可,减少攻击面。
4. 数据卷与 SSL 证书
./data/work:存放 AdGuard Home 的运行数据(统计、日志等)。./data/conf:存放核心配置文件AdGuardHome.yaml。./ssl:映射了宿主机上的1Panel站点证书目录,方便直接启用 DoH/DoT 的 HTTPS 证书,免去手动申请和配置证书的麻烦。
5. 重启策略(restart: on-failure:5)
和
always不同,on-failure:5表示如果容器异常退出,最多重启 5 次,5 次后如果还是失败则停止尝试。这比一直死循环重启更适合 AdGuard 这种作为网络基础设施的服务,避免因反复崩溃浪费资源。
使用场景与注意事项
适用场景
家庭 / 小型网络 DNS 防污染:配合规则列表实现广告拦截和隐私保护。
局域网 DHCP 服务:接管路由器的 DHCP 功能,实现更精细的 IP 管理。
外部加密 DNS 服务器:通过 DoH/DoT 为移动设备提供安全 DNS 解析(需公网 IP 配合 SSL 证书)。
注意事项
端口冲突:家里用 53 端口转发时,宿主机不能有
systemd-resolved或dnsmasq提前占用 53 端口,否则容器起不来。需要先关闭宿主机的 DNS 服务。环境变量:这个模版依赖
{PANEL_APP_PORT_*}等 1Panel 应用商店的环境变量。如果脱离 1Panel 直接使用,需要把${}替换为实际的端口号,如- 3000:3000。防火墙:如果是公网暴露,务必在防火墙只允许信任 IP 访问 3000 管理后台,否则容易被扫描爆破。
SSL 证书路径:
/opt/1panel/www/sites/dns/ssl是 1Panel 特定路径,如果用其他证书管理工具,记得替换成你实际存放证书的路径。