AdguardHome Docker 容器化部署指南

AdGuard Home Docker 安装和配置指南 搭建私有化DNS 阅读详情

概述

ADGUARDHOME是一款网络级广告和跟踪器拦截DNS服务器,作为一款开源的隐私保护工具,它能够在网络层面为所有设备提供广告过滤和隐私保护功能,无需在每个设备上单独安装客户端软件。通过Docker容器化部署ADGUARDHOME,可以实现快速部署、环境隔离和版本管理,适用于家庭网络、小型企业网络等多种场景。

本文档将详细介绍ADGUARDHOME的Docker容器化部署流程,包括环境准备、镜像拉取、容器部署、功能测试及生产环境优化建议,旨在为用户提供一套可靠、可复现的部署方案。

环境准备

Docker环境安装

ADGUARDHOME基于Docker容器运行,首先需要在目标服务器上安装Docker环境。推荐使用以下一键安装脚本,该脚本会自动配置Docker环境并优化相关参数:

bash <(wget -qO- https://xuanyuan.cloud/docker.sh)

安装完成后,可通过以下命令验证Docker是否正常运行:

docker --version
docker info

镜像准备

拉取ADGUARDHOME镜像

使用以下命令通过轩辕镜像加速地址拉取最新版本的ADGUARDHOME镜像:

docker pull xxx.xuanyuan.run/adguard/adguardhome:latest

如需指定其他版本,可访问ADGUARDHOME镜像标签列表查看可用标签,并替换命令中的latest标签。

容器部署

准备数据持久化目录

ADGUARDHOME需要持久化存储配置文件和运行数据,建议在主机上创建专用目录:

# 创建配置文件目录
mkdir -p /data/adguardhome/conf
# 创建数据存储目录
mkdir -p /data/adguardhome/work
# 设置目录权限
chmod -R 755 /data/adguardhome

启动ADGUARDHOME容器

使用以下命令启动ADGUARDHOME容器,根据实际需求调整端口映射和参数:

docker run -d \
  --name adguardhome \
  --restart unless-stopped \
  -v /data/adguardhome/conf:/opt/adguardhome/conf \
  -v /data/adguardhome/work:/opt/adguardhome/work \
  -p 53:53/tcp -p 53:53/udp \  # DNS服务端口
  -p 3000:3000/tcp \            # 初始配置界面端口
  -p 80:80/tcp \                # HTTP服务端口(用于DNS-over-HTTPS等)
  -p 443:443/tcp -p 443:443/udp \  # HTTPS服务端口
  adguard/adguardhome:latest

参数说明:

  • -d:后台运行容器
  • --name adguardhome:指定容器名称为adguardhome
  • --restart unless-stopped:容器退出时自动重启(除非手动停止)
  • -v:挂载主机目录到容器内,实现数据持久化
  • -p:端口映射,根据ADGUARDHOME功能需求开放相应端口

注意:如需使用DHCP服务器功能,可能需要添加--network host参数使用主机网络(仅Linux系统支持),此时无需单独指定-p端口映射。

功能测试

容器状态检查

部署完成后,首先检查容器是否正常运行:

# 查看容器运行状态
docker ps | grep adguardhome

# 若容器未运行,查看错误日志
docker logs adguardhome

正常运行时,输出应显示容器状态为Up。

管理界面访问测试

ADGUARDHOME首次启动时,通过3000端口提供初始配置界面。在浏览器中访问:

http://服务器IP:3000

若无法访问,检查服务器防火墙规则是否允许3000端口入站,或通过以下命令测试端口连通性:

# 从服务器本地测试
curl http://127.0.0.1:3000

# 从客户端测试(替换为实际服务器IP)
curl http://服务器IP:3000

DNS服务功能测试

ADGUARDHOME核心功能为DNS服务,可通过nslookup或dig命令测试DNS解析是否正常:

# 使用ADGUARDHOME作为DNS服务器解析域名
nslookup example.com 服务器IP

若解析成功,说明DNS服务基本功能正常。

生产环境建议

数据安全与备份

ADGUARDHOME的配置和运行数据存储在挂载的主机目录中,建议:

  • 定期备份/data/adguardhome目录,防止数据丢失
  • 对备份文件进行加密存储,保护隐私数据
# 示例:创建数据备份
tar -czf adguardhome_backup_$(date +%Y%m%d).tar.gz /data/adguardhome

资源限制配置

为避免容器过度占用主机资源,建议通过--memory和--cpus参数限制资源使用:

docker run -d \
  --name adguardhome \
  --restart unless-stopped \
  --memory=1G \  # 限制最大内存使用为1GB
  --cpus=0.5 \   # 限制CPU使用为0.5核
  -v /data/adguardhome/conf:/opt/adguardhome/conf \
  -v /data/adguardhome/work:/opt/adguardhome/work \
  -p 53:53/tcp -p 53:53/udp \
  -p 3000:3000/tcp \
  adguard/adguardhome:latest

根据实际网络规模和设备数量,调整资源限制参数。

网络优化

  • 端口冲突处理:ADGUARDHOME使用的53端口可能与系统自带DNS服务(如systemd-resolved)冲突,解决方法参考故障排查章节。
  • 网络模式选择:常规场景使用桥接网络(默认),需使用DHCP功能时切换至主机网络(--network host)。
  • 防火墙配置:仅开放必要端口,限制访问来源IP,增强安全性。

故障排查

常见问题及解决方法

1. 53端口冲突(systemd-resolved服务)

症状:容器启动失败,日志显示bind: address already in use(绑定端口已被占用)。

原因:Linux系统默认的systemd-resolved服务占用53端口。

解决方法:

# 创建resolved配置文件
sudo mkdir -p /etc/systemd/resolved.conf.d/
sudo tee /etc/systemd/resolved.conf.d/adguardhome.conf <<EOF
[Resolve]
DNS=127.0.0.1
DNSStubListener=no
EOF

# 备份并重新链接resolv.conf
sudo mv /etc/resolv.conf /etc/resolv.conf.backup
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

# 重启resolved服务
sudo systemctl reload-or-restart systemd-resolved
2. 管理界面无法访问

排查步骤:

  1. 检查容器是否运行:docker ps | grep adguardhome
  2. 检查端口映射是否正确:docker inspect adguardhome | grep PortBindings
  3. 检查主机防火墙规则:sudo ufw status(UFW防火墙)或查看iptables规则
  4. 查看容器日志定位错误:docker logs adguardhome
3. DNS解析异常

排查步骤:

  1. 确认ADGUARDHOME上游DNS配置正确(通过管理界面检查)
  2. 检查网络连通性:容器内测试上游DNS服务器连通性
    # 进入容器
    docker exec -it adguardhome /bin/sh
    # 测试DNS解析
    nslookup example.com 8.8.8.8  # 使用Google DNS测试
    
  3. 查看ADGUARDHOME日志,分析解析失败原因:docker logs adguardhome

参考资源

总结

本文详细介绍了ADGUARDHOME的Docker容器化部署方案,从环境准备、镜像拉取、容器部署到功能测试,提供了一套完整的实施流程。通过容器化部署,用户可以快速搭建网络级广告拦截DNS服务,同时确保部署过程的可重复性和环境隔离性。

关键要点:

  • 使用轩辕镜像加速可提升ADGUARDHOME镜像拉取速度
  • 数据持久化通过挂载主机目录实现,需注意备份重要配置
  • 53端口可能与系统服务冲突,需提前排查并处理
  • 管理界面初始访问端口为3000,完成配置后可调整

后续建议:

  • 登录ADGUARDHOME管理界面完成初始配置,包括上游DNS设置、过滤规则添加等
  • 根据网络规模和设备数量,优化ADGUARDHOME性能参数(如缓存大小、并发连接数)
  • 深入学习ADGUARDHOME高级特性,如DNS-over-HTTPS、DNS-over-TLS等加密DNS功能
  • 定期更新镜像版本,获取安全补丁和功能改进:docker pull adguard/adguardhome:latest并重启容器

通过合理配置和维护,ADGUARDHOME可有效提升网络隐私保护水平,为家庭或企业网络提供可靠的广告和跟踪器拦截服务。

ikuai搭建AdGuardHome(保姆及教程) 本教程使用iKuai中使用Docker插件搭建AdGuardHome特别包含了IPv6的设置步骤AdGuardHome可以有效的拦截广告和增加dns解析速度。 阅读详情

相关推荐

群辉 DSM 7.0 Docker 启动 AdguardHome 屏蔽广告

环境:群辉 DS1621+、DSM 7.0系统、领势MX5300、交换机、OpenWRT 软路由 简单说一下当前系统环境: 四个网口都连上了交换机,在系统中做了链路聚合 刚升级了几个月的 7.0 系统 群辉防火墙已开启 内网拓扑可参考之前写的文章,虽然设备有所变化,但是原理通用,点击跳转 过程中踩了一个坑,启动容器并把 DNS IP 设置为群辉地址之后,设备无法访问网络,浏览器打开网站显示的是无法解析DNS。 其实网上有很多教程,教如何通过群辉的 Docker 部署 AdguardHome,但是

Nelson.Feng 的专栏 5273

Docker安装Adguardhome

本文同步发布于个人博客 项目地址 AdguardTeam/AdGuardHome 免费和开源、强大的全网广告和跟踪器阻止 DNS 服务器。 Adguardhome部署 拉取 Docker 镜像 docker pull adguard/adguardhome 创建并运行容器 方法一 网络为bridge创建一个新容器并运行 AdGuard Home: docker run -itd \ --name adguardhome\ --restart=always \ -v /my/o.

Yetta Daisy的博客 1万+

Docker一键部署AdGuardHome:比传统安装更省心的Linux去广告方案(附Compose文件)

本文详细介绍了如何使用Docker Compose一键部署AdGuardHome,实现Linux系统下的全局免广告解决方案。通过容器化技术简化安装流程,提供持久化配置和便捷管理,特别适合开发者和运维人员快速搭建高效的DNS广告过滤系统。

acxm45824的博客 360

香橙派安装 adguardhome (docker)

本文主要内容: 在香橙派 zero3 (1GB) 上安装 adguardhome 的过程.adguardhome 作为一个 DNS 服务器, 安装简单, 配置方便, 界面美观 (web), 可以加速上网.adguardhome 虽然不需要太多计算存储资源, 但还是需要那么一点的. 常见的 OpenWrt 路由器的存储空间往往太小 (比如 256MB RAM, 28MB flash), 运行 adguardhome 有点吃力. 如果使用 x86 计算机, 又太贵太费电了.

穷人小水滴的博客 3014

AdguardHome 容器化实战:从零搭建家庭网络隐私堡垒

本文详细介绍了如何通过Docker容器化部署AdguardHome,打造家庭网络隐私堡垒。从硬件选择、Docker环境搭建到AdguardHome深度配置,提供一站式解决方案,有效拦截广告和跟踪器,提升网络隐私保护。特别适合智能设备多的家庭环境,实现高效、安全的DNS过滤。

weixin_30632089的博客 224

在Linux部署AdGuardHome:构建家庭网络去广告DNS网关

本文详细介绍了在Linux系统上部署AdGuardHome的方法,帮助用户构建家庭网络去广告DNS网关。通过硬件准备、系统优化、多种安装方式及网络配置实战,实现全局免广告效果,提升网页加载速度并保护隐私。特别适合智能设备多的家庭环境,有效拦截视频贴片广告和网页悬浮广告。

weixin_30846347的博客 92

AdGuardHome Sync Docker部署最佳实践:容器化方案详解

AdGuardHome Sync是一款轻量级工具,能够自动同步AdGuard Home的配置到多个副本实例,确保网络过滤规则、DNS设置和客户端配置在多设备间保持一致。本文将详细介绍如何通过Docker容器化方案快速部署AdGuardHome Sync,实现配置的自动化同步与管理。 ### Docker环境准备 在开始部署前,请确保您的系统已安装Docker和Docker Compose。如果尚

gitblog_00340的博客 469

centos8安装docker使用smartdns+adguardhome,完美高效加速dns和去广告

centos8安装docker使用smartdns+adguardhome,完美高效加速dns和去广告。 centos 8.0 64位安装教程略,mini最小安装即可,加上systembase。 以下命令复制粘贴即可: #安装依赖 yum install -y yum-utils device-mapper-persistent-data lvm2 #安装docker yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/lin

weixin_39798566的博客 7838

AdGuardHome跨平台部署:Windows到Linux全支持

你是否正在寻找一款能在家庭网络中全面拦截广告和第三方域名解析请求的解决方案?AdGuardHome作为一款网络级广告拦截DNS服务器,支持Windows、Linux、macOS等多平台部署,让所有设备无需安装客户端即可享受纯净网络。本文将带你从安装到配置,完成AdGuardHome在主流操作系统上的部署,解决跨平台兼容性问题,实现统一的网络防护。 ## 核心功能与跨平台优势 AdGuardHo...

gitblog_00190的博客 1291

保姆级教程:在UOS专业版(ARM64)上,用Docker和原生安装两种方式部署AdGuardHome去广告DNS

本文详细介绍了在UOS专业版(ARM64)上通过Docker和原生安装两种方式部署AdGuardHome的完整流程。从环境准备、系统调优到高级配置与规则优化,手把手教你实现广告拦截、隐私保护和DNS优化,特别针对ARM64架构的兼容性问题提供了解决方案。

weixin_30335575的博客 487

RouterOS7上AdGuardHome容器时间同步问题全解(附NTP服务器配置)

本文详细解析了RouterOS7上部署AdGuardHome容器时遇到的时间同步问题,特别是因时间错误导致的'certificate expired'等证书验证失败问题。提供了从基础NTP配置到容器参数优化的完整解决方案,包括硬件时钟同步和自动化监控脚本,确保AdGuardHome稳定运行。

weixin_30736301的博客 761

推荐项目:AdGuardHome Sync - 高效的AdGuardHome配置同步工具

AdGuardHome Sync 是一个精心设计的开源工具,用于将你的AdGuardHome实例的配置实时同步到多个副本实例中。这个项目的目标是确保你的网络过滤和DNS管理设置在所有设备上保持一致,无论它们是在家庭网络的不同节点还是远程位置。 ## 项目技术分析 AdGuardHome Sync 基于Go语言编写,这使得它具备轻量级、高性能以及跨平台运行的能力。该项目支持多种同步功能,如基本设...

gitblog_00094的博客 734

路由器废物利用指南:EA8500刷Gargoyle跑Python签到脚本+AdGuardHome去广告

本文详细介绍了如何将闲置的Linksys EA8500路由器刷入Gargoyle固件,实现多功能智能终端改造。通过安装AdGuardHome进行广告过滤、搭建Python环境运行自动签到脚本,充分利用路由器性能。教程涵盖固件刷写、存储扩展、服务部署及性能优化,特别适合OpenWRT爱好者和技术极客。

weixin_30879169的博客 445

AdGuardHome容器资源限制终极指南:避免系统过载的10个技巧

AdGuardHome作为网络级广告和追踪拦截DNS服务器,在容器化部署时需要特别注意资源管理。本文将为您详细介绍如何有效限制AdGuardHome容器资源,确保系统稳定运行,避免过载问题。🚀 ## 为什么需要资源限制? AdGuardHome处理大量DNS查询时,如果不加以限制,可能导致: - CPU使用率飙升,影响主机性能 - 内存占用过高,触发OOM Killer - 文件描述符耗尽,

gitblog_00759的博客 463

自组织映射神经网络(SOM)

目录 1 背景:自组织(竞争型)神经网络 2竞争学习的概念与原理 2.1 竞争学习的步骤 2.2 示例 3SOM典型结构 4SOM网的权值调整域 5 SOM Kohonen 学习算法 6 SOM示例 7SOM设计细节 7.1输出层设计 7.2输出层节点排列的设计 7.3 权值初始化问题 7.4学习率的设计 7.5设计拓扑领域 8SOM功能分析 8.1 保序映射 8.2数据压缩 8.3 特征提取 9自组织映射神经网络与K均值算法的区别...

weixin_39910711的博客 1万+

setup time和hold time的计算

内容仅仅为了方便记忆,与原理无关

sddhyl的博客 7819

AdGuardHome Sync完全指南:如何轻松同步多实例AdGuard Home配置

AdGuardHome Sync是一款专为AdGuard Home设计的配置同步工具,能够帮助用户轻松实现多实例间的配置同步,确保网络过滤规则、客户端设置等关键配置在所有AdGuard Home实例中保持一致。无论是家庭网络中的多设备部署,还是企业环境下的分布式架构,这款工具都能提供稳定高效的配置管理方案。 ## 什么是AdGuardHome Sync? AdGuardHome Sync(项目

gitblog_00963的博客 415

Windows下Codex CLI binary报错排查与修复完整指南

在Windows开发环境中,命令行工具与图形界面应用的协同工作常常依赖于系统环境变量的正确配置。Codex CLI作为一款基于Node.js的智能编程命令行工具,其可执行文件(binary)的定位机制直接关系到桌面应用的正常启动。当用户执行npm更新或切换Node版本后,Codex CLI二进制文件路径可能发生漂移,从而触发“Unable to locate the Codex CLI binary”的报错。此类问题并非代码或账号异常,而是PATH路径、环境变量刷新及桌面应用缓存共同作用的结果。本文面向Wi

weixin_28718769的博客 305

OpenWRT容器化部署OpenClaw:边缘AI助理实战指南

OpenWRT作为轻量级嵌入式Linux系统,正从传统路由固件演进为边缘智能底座;其核心价值在于提供完整的网络栈控制、模块化服务管理和低开销容器运行环境。结合iStoreOS深度定制与Docker容器化部署,可构建具备独立IP、直通物理网卡和完整内核权限的软路由操作系统实例。这种架构天然适配本地化AI推理需求——无需云端依赖,即可承载OpenClaw等轻量级AI框架,在家用NAS或x86主机上实现24小时常驻、低延迟响应的个人AI助理。关键技术包括macvlan网络直通保障Webhook可达性、--priv

weixin_30700977的博客 381

关于HC32F460 输出可调占空比PWM波遇到的问题记录

文章目录问题记录一、问题分析二、解决方法总结 问题记录 芯片:HC32F460系列 功能:PWM电机调速 最近产品开发,需要用到HC32的PWM输出来控制电机的转速。参考官方的例程很快就完成了相关的功能,但是,后面在测试,重复开关电机的时候,发现电机的转速时大时小。 一、问题分析 一开始,怀疑是相关寄存器的设置出错导致的问题。因此在设置PWM输出时加上LOG打印,上机测试并没有发现问题。 用示波器抓取波形,这是正常状态下的波形(上电默认配置成5kHz,70%占空比输出) 这是转速较小时的波形输出 .

Top0_0lll的博客 6167

最新首发——boss直聘爬虫

本文介绍了使用Python开发Boss直聘爬虫的核心思路和技术要点。通过模拟浏览器访问搜索页面获取Cookie,然后构建API请求获取职位数据。关键步骤包括:1)使用DrissionPage库初始化浏览器;2)模拟用户浏览行为获取必要参数;3)设置完整的请求头信息;4)通过POST请求获取JSON格式的职位数据。文章提供了详细的代码实现,包括浏览器模拟、API请求构建、数据处理等核心功能模块,并强调了最新版接口改为POST访问的特点。该爬虫可自动翻页采集数据并保存为Excel文件,适用于安全实习等职位信息的

2301_79735033的博客 3325

旧游戏本改造家庭服务器:Ubuntu+Docker实战指南

容器化技术通过将应用及其依赖打包成标准单元,实现了环境隔离与快速部署,其核心原理基于操作系统级虚拟化。这项技术为现代软件交付带来了革命性价值,显著提升了开发、测试与部署效率,并广泛应用于微服务架构、持续集成和云原生场景。在家庭与个人计算环境中,容器化同样能发挥巨大潜力,例如将闲置的高性能硬件转化为多功能服务器。本文以一台退役游戏笔记本电脑为例,详细演示如何通过Ubuntu Server与Docker Compose技术栈,将其改造为集媒体中心、私有云盘和智能家居网关于一体的高能效个人服务器,涵盖了从硬件评估

weixin_34342905的博客 407

kubedns-coredns部署pod出现not ready问题

文章目录遇到的问题1、发现问题2、排查问题3、解决方法 coredns的实例health_check不通过的问题,排查和解决方法 遇到的问题 1、发现问题 pod启动但是未ready 查看是readiness失败 使用对应的URL进行curl,发现真的返回503 2、排查问题 查看错误日志,发现一堆这个错误"waiting on : kubernetes" 网上相关的问题解答 这个跟测试场景不一样,这个案例是开了防火墙,可以确认我这个案例的机器没有开防火墙,但它提醒了一点,coredns是需要访问ap

u012533481的博客 2844

实战指南:如何将闲置电视盒子变身高性能Linux服务器

你是否曾经想过,那些被淘汰的电视盒子其实隐藏着巨大的潜力?它们通常配备着性能不错的ARM处理器、充足的内存和存储空间,却因为Android系统的限制而无法充分发挥价值。今天,我将为你介绍一个革命性的开源项目——amlogic-s9xxx-armbian,它能将你的Amlogic、Rockchip、Allwinner设备变身为功能强大的Linux服务器。 ## 🚀 从电视盒子到专业服务器的华丽转

gitblog_00858的博客 320

<PLC><西门子><工控>西门子博图V18中使用SCL语言编写一个CRC16-modbus校验程序

西门子官方对于SCL语言的介绍如下:SCL 编程语言SCL 编程语言SCL(Structured Control Language,结构化控制语言)是一种基于 PASCAL 的高级编程语言。这种语言基于标准DIN EN 61131-3(国际标准为 IEC 1131-3)。根据该标准,可对用于可编程逻辑控制器的编程语言进行标准化。SCL 编程语言实现了该标准中定义的 ST 语言 (结构化文本) 的PLCopen 初级水平。语言元素。

用沸腾的热血,支付我们的人生吧! 1439

SXU—软件测试方法和技术-朱少民-第三部分 软件测试方法大题汇总-附考点和相关习题及解答

软件测试方法和技术-朱少民-第三部分 软件测试方法—-最少测试用例个数,强一般弱一般强健壮、边界值分析、ns流程图、白盒逻辑覆盖代码、等价类划分,逻辑组合(条件)覆盖,计算圈复杂度等—附考点和相关习题及解答

weixin_63597914的博客 2213
上一篇: CALIBRE-WEB Docker 容器化部署指南
下一篇: LinuxServer.io LibreOffice 容器化部署指南
java_logo
博客等级 码龄18年 326粉丝 240原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值