给家庭网络配一个净化器!OESP轻NAS部署AdGuardHome打造广告过滤与隐私保护中心
给家庭网络配一个净化器!OESP轻NAS部署AdGuardHome打造广告过滤与隐私保护中心
JonyLee在网络隐私日益受到重视的今天,搭建一个本地化的DNS服务器不仅能有效过滤广告、提升网页加载速度,还能保护家庭网络中所有设备的隐私安全。
Jony一直在提NAS对于现代家庭的必要性,今天就来介绍一个基于NAS部署的广告拦截与隐私保护程序 ADGuardHome。
作为一款开源的全网络广告和跟踪程序拦截软件,配合Docker容器化技术,它可以非常方便的为你创建一个安全的家庭网络环境,能自动拦截掉大部分广告和跟踪器,让你家电视看剧没广告、网页浏览更干净。
什么是AdGuardHome?
AdGuardHome是一个全网广告拦截与隐私保护中心,它能够:
- 拦截广告和跟踪器:在全网络范围内拦截广告和隐私跟踪器,保护您的上网隐私
- 家长控制功能:屏蔽成人内容,确保儿童安全上网
- DNS加密服务:支持DNS-over-HTTPS(DoH)和DNS-over-TLS(DoT),提供安全的DNS查询
- 数据分析:提供详细的DNS查询统计和分析报告
- 自定义过滤规则:支持自定义域名过滤和重写规则
与浏览器插件不同,AdGuardHome在网络层级工作,能够保护网络中所有设备(包括智能手机、智能电视和IoT设备)的隐私安全。
如何部署安装AdGuardHome
AdGuardHome 有多种安装方式,Linux系统可以直接运行二进制文件,也可以通过Docker方式运行,推荐使用Docker运行,管理起来更方便。
一、准备工作
在开始部署前,请确保您的Armbian系统已满足以下条件:
- 已安装Docker和Docker Compose
- 具有sudo权限的用户账户
- 知道您的Armbian服务器设备的IP地址
- 检查NAS服务器53端口是否被占用
前三条是基础条件,这里就不详述了,需要重点关注一下第4条,ADGuard是基于DNS的拦截器,所以需要使用到标准DNS服务53
端口 ,而很多Linux系统,默认53端口已经被系统自带的DNS服务systemd-resolved
给占用了,这样ADGuard就没法使用标准53端口,导致安装时端口冲突或者类似其他面板类安装,自动修改端口导致ADGuard配置不生效。
如何解除systemd-resolved
53端口占用详见文末扩展阅读部分。
二、使用1panel或casaos应用商店一键安装
对于成品NAS用户,想必各家的应用商店也都有这款著名的软件,直接安装就是。而使用各种ARM盒子搭建的Armbian轻NAS,也可以通过1panel面板或者casaos的应用商店一键安装。
点击安装后,需要设置端口映射,1panel会自动分配未使用的端口,但是注意这里普通DNS端口 是否为53
,如果如下图是其他端口,那么回去检查准备工作第4步。确保53端口解除后,修改该处端口映射为53
。
容器名称可写可不写,需要勾选【端口外部访问】。
部署完成。
三、使用Docker Compose 部署
我们将使用Docker Compose来部署AdGuardHome,这是一种更易于管理和维护的方式。
创建部署目录和配置文件
首先创建一个专用目录来存储AdGuardHome的配置和数据文件:
1 | mkdir -p /opt/DATA/adguardhome/conf |
创建Docker Compose文件
创建docker-compose.yml
文件如下:
1 | version: '3' |
部署并启动AdGuardHome
运行以下命令启动容器:
1 | docker-compose up -d |
如何配置AdGuardHome
容器启动后,可以通过浏览器访问AdGuardHome的Web管理界面进行初始配置。打开AdGuardHome初始化设置网页(例如:http://192.168.1.100:3000
)
按照安装向导完成初始设置,分别是:
- 配置管理界面端口,即映射的容器内部80端口对应的宿主机端口,上例中1panel安装时设置的HTTP 网页端口23000,或创建docker compose时的20080端口。
- 设置管理员用户名和密码。
- 配置DNS服务器设置。
要让所有网络设备受益于AdGuardHome,有两种DNS配置方式:
第一种是直接在家庭主路由器中,设置DNS为ADGuardHome所在服务器的ip地址,推荐使用此方式,这样其他设备都不需要再额外做任何配置。
第二种是不设置主路由器DNS,而是在各个设备上分别设置DNS地址为ADGuardHome所在服务器的ip地址,以Windows为例:
其他设备可参考初始化设置页面第4步其他设备设置说明。
配置AdGuardHome功能
1. DNS设置优化
在【设置】 →【DNS设置】中,建议进行以下配置:
上游DNS服务器:添加多个可靠的DNS服务器,国内使用大厂的DNS比较快:
1 | 223.5.5.5 # 阿里DNS |
Bootstrap DNS服务器:设置为您的运营商DNS或公共DNS,如 223.5.5.5
DNS缓存配置:根据您的设备内存大小调整缓存大小。小白也可以不改动。
填好可以点下面的测试上游,通过没有问题会有提示,每项填好记得点应用保存。
2. 配置过滤器
AdGuardHome的强大之处就在于其DNS过滤功能。在【过滤器】 →【DNS黑名单】中,可以添加多个过滤列表,推荐以下几个,配置两三条即可,不需要太多否则可能拉慢网速:
1 | 基础广告过滤: |
可以手动自定义输入,也可以从列表中选择:
从列表中选择,拉到【区域】部分,找到两个CHN
开头的,勾选即可。(注意这个地址是Github网站,github容易抽风,可能有时候会报错,可以等一等,或者找不是github.io地址的,如上代码块中中文区广告过滤地址)
3. 设置DNS重写规则
在”过滤器” → “DNS重写”中,您可以添加自定义域名解析规则,例如:
- 将广告域名重定向到
0.0.0.0
实现屏蔽 - 为本地网络设备设置自定义域名解析
- 解决特定网站无法访问的问题
4. 自定义过滤规则
当你启用了过滤器黑名单,可能会导致有时候你希望看到的内容被拦截,或者有时候有的网站不在拦截黑名单而你希望拦截它,这时你就可以利用自定义过滤规则,单独解除或者阻止某些网站。
注意要严格按示例说明的格式来写,否则不生效。
踩坑与填坑
- 端口冲突问题:如果端口53、80或3000已被占用,可以修改Docker Compose文件中的端口映射或停止冲突服务,其他端口可以通过修改映射宿主机端口解决,53端口需要解除占用,否则影响ADGuardHome使用体验。
- DNS解析失败:检查上游DNS服务器设置是否正确,网络连接是否正常。
- 性能问题:如果设备资源有限,可以减少过滤规则数量或调整DNS缓存大小。
- 某些网站无法访问:检查过滤规则是否过于严格,尝试禁用部分规则或添加白名单。
扩展阅读
如何解除53端口占用?
使用sudo lsof -i :53
命令查询53端口是否被占用:
1 | OESP-Armbian:~:# sudo lsof -i :53 |
如果如上面显示,则表示被占用。
编辑/etc/systemd/seve.conf
文件,
取消DNS=
和 DNSStubListener=yes
两处注释,并编辑内容如下:
1 | # See resolved.conf(5) for details. |
使用sudo systemctl restart systemd-resolved.service
重启服务解除53端口占用。
再次使用sudo lsof -i :53
命令查询,如果没有内容输出,说明已经成功解除。
通过在NAS系统上部署AdGuardHome,您不仅获得了强大的全网广告拦截和隐私保护能力,还能通过集中管理提升家庭网络的安全性和性能。容器化部署使得安装、更新和备份变得简单可靠,即使系统出现问题也能快速恢复服务。
现在,享受一个更加清洁、快速和安全的网络环境吧!如果您在部署过程中遇到任何问题,欢迎在评论区留言讨论。