AdguardHome Docker 部署实战:从零搭建家庭网络隐私堡垒

张开发
2026/4/17 12:17:23 15 分钟阅读

分享文章

AdguardHome Docker 部署实战:从零搭建家庭网络隐私堡垒
1. 为什么家庭网络需要AdguardHome家里智能设备越来越多从手机平板到智能电视、摄像头每台设备都在悄悄发送数据。去年我家小孩用平板看动画片突然跳出一个不适合的广告这才意识到问题严重性。传统方案是在每个设备装广告拦截插件但智能家居设备根本装不了这时候就需要网络层面的解决方案。AdguardHome就像给全家网络装了净水器所有设备流量都经过它过滤。我实测下来最明显的三个好处一是拦截效果覆盖所有联网设备连智能冰箱的广告都能屏蔽二是减少30%以上的网络请求老旧路由器都能感觉变流畅了三是能屏蔽那些偷偷收集数据的追踪器比如某些智能电视会持续上传观看记录。2. 十分钟搞定Docker环境很多朋友卡在第一步的Docker安装其实现在Linux系统部署Docker已经非常简单。以最常见的Ubuntu系统为例只需要三条命令sudo apt update sudo apt install docker.io sudo systemctl enable --now docker装完别急着下一步先做个健康检查docker run hello-world。这个测试镜像只有13KB能快速验证Docker是否正常工作。我遇到过阿里云ECS默认的防火墙规则会阻断容器网络这时候需要额外开端口sudo ufw allow 53/tcp sudo ufw allow 53/udp提示国内用户推荐配置镜像加速在/etc/docker/daemon.json添加{ registry-mirrors: [https://registry.docker-cn.com] }3. 容器部署的三大关键步骤3.1 持久化存储的正确姿势AdguardHome运行时会产生两类重要数据配置文件conf目录和工作数据work目录。直接挂载到/home目录可能遇到权限问题我的推荐做法是mkdir -p /opt/adguard/{conf,work} chown -R 1000:1000 /opt/adguard # 确保容器用户有写入权限遇到过最坑的情况是SELinux导致的权限拒绝这时候要么关闭SELinux不推荐要么添加正确的安全上下文chcon -Rt svirt_sandbox_file_t /opt/adguard3.2 端口映射的智能方案原始方案直接暴露53端口可能和系统dnsmasq服务冲突。更稳妥的做法是先用非标准端口测试比如5353确认服务正常后再切换docker run -d \ --name adguard \ -v /opt/adguard/conf:/opt/adguardhome/conf \ -v /opt/adguard/work:/opt/adguardhome/work \ -p 5353:53/tcp -p 5353:53/udp \ -p 3000:3000/tcp \ adguard/adguardhome等通过3000端口完成初始化配置后再停用系统DNS服务并改用53端口。对于家庭网络建议把DoHDNS-over-HTTPS的443端口也映射出来。3.3 首次配置避坑指南访问http://服务器IP:3000 时会遇到几个关键选项监听接口选0.0.0.0才能被局域网访问上游DNS不建议直接用ISP提供的DNS推荐组合国内119.29.29.29 223.5.5.5国外tls://dns.google查询日志家庭用户建议关闭既保护隐私又节省资源配置完成后一定要测试DNS泄漏在https://www.dnsleaktest.com 跑扩展测试确保所有查询都经过AdguardHome。4. 家庭网络专属优化技巧4.1 路由器联动方案普通家用路由器一般支持三种部署模式DNS重定向推荐在路由器DHCP设置中将DNS服务器指向AdguardHome的IP透明网关需要路由器支持iptables重定向53端口替代路由器DNS直接修改WAN口DNS设置以OpenWRT为例具体操作路径网络 → 接口 → LAN → DHCP服务器 → 高级设置 → DNS服务器4.2 家长控制实战AdguardHome的家长控制比路由器自带的功能更灵活按时间段阻断社交/视频网站比如19-21点屏蔽特定类型内容赌博/成人网站自定义过滤列表封杀某音等短视频# 在自定义过滤规则中添加 ||douyin.com^$important ||tiktok.com^$important4.3 智能设备特别处理IoT设备经常需要放行特定域名比如小米设备需要||mi.com^$important ||xiaomi.com^$important电视盒子类设备建议单独创建客户端规则禁用加密DNSDoH/DoT否则可能无法正常使用。5. 高阶维护与监控5.1 自动化更新方案官方镜像更新频繁推荐用watchtower自动更新docker run -d \ --name watchtower \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower \ --cleanup \ --interval 86400 # 每天检查一次5.2 性能监控技巧通过GrafanaPrometheus监控关键指标DNS查询量/拦截量平均响应时间内存/CPU使用率AdguardHome自带Prometheus接口配置示例# prometheus.yml 片段 scrape_configs: - job_name: adguard static_configs: - targets: [adguard:3000]5.3 备份策略我用的rsync增量备份方案每天凌晨3点同步到NAS0 3 * * * rsync -avz --delete /opt/adguard/ usernas:/backups/adguard/关键配置建议导出为文本备份docker exec adguardhome /opt/adguardhome/AdGuardHome -c /opt/adguardhome/conf/AdGuardHome.yaml --export config.yaml

更多文章