导读:本期聚焦于深圳程序员创作的《如何用树莓派搭建家庭DNS服务器?Pi-hole+Unbound配置全攻略》,敬请观看详情。家里十几台设备每次打开网页都要等广告加载半天?路由器自带的DNS又慢又不稳定?其实一台闲置的树莓派就能解决这些问题。本文手把手教你用树莓派搭建家庭DNS服务器,通过安装Pi-hole实现全屋广告过滤,再配合Unbound搭建递归DNS解析,让域名解析速度更快、隐私性更好。内容涵盖系统准备、静态IP设置、Pi-hole安装配置、Unbound集成、路由器DNS指向修改以及常见故障排查,即使没有Linux基础也能跟着一步步完成部署。

DNS是上网的第一道入口,每次访问网站前,设备都要先通过DNS服务器把域名翻译成IP地址。大多数家庭用户默认使用运营商或公共DNS,不仅解析速度参差不齐,隐私也难以保障,还要忍受各种弹窗广告的骚扰。而一台闲置的树莓派正好可以变身为一台低功耗、24小时运行的家用DNS服务器,配合Pi-hole和Unbound这两套开源工具,就能实现全屋广告拦截和快速域名解析,功耗只有几瓦,电费几乎可以忽略不计。

如何用树莓派搭建家庭DNS服务器?Pi-hole+Unbound配置全攻略

一、准备工作与系统环境搭建

搭建DNS服务器对硬件要求很低,树莓派3B、4B或者Zero 2W都可以胜任,建议搭配一张质量可靠的16GB以上TF卡。如果设备数量多、查询量大,推荐树莓派4B,它的内存和网络性能更好。软件方面推荐使用官方的Raspberry Pi OS Lite版本,也就是不带桌面环境的精简版,因为DNS服务器不需要图形界面,精简系统能省下更多资源,长期运行也更稳定。

首先用官方的Raspberry Pi Imager工具把系统写入TF卡。写入前记得在Imager的设置里开启SSH、配置好用户名密码,并提前设置无线网信息,这样开机后就能远程连接,不用额外接显示器和键盘。系统启动后用SSH连上树莓派,先做一轮基础更新:

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl dnsutils

更新完成后,设置主机名并检查系统时间是否正确,DNS服务的日志和证书验证都依赖准确的时间:

sudo hostnamectl set-hostname pihole
timedatectl status

二、配置静态IP地址

DNS服务器最忌讳IP地址漂移。如果树莓派通过DHCP获取地址,一旦租约到期地址变化,全屋设备的DNS指向就会全部失效,表现为突然集体断网。所以在安装Pi-hole之前,必须先给树莓派固定一个内网IP。

固定IP有两种思路:一种是在路由器后台把树莓派的MAC地址和某个IP绑定,俗称DHCP静态分配,这是最推荐的方式,配置简单且不易出错;另一种是直接在树莓派系统里禁用DHCP客户端,手动写死网络配置。如果选择后者,可以用nmcli命令来操作:

sudo nmcli con show                       # 查看当前连接名称
sudo nmcli con mod "preconfigured" ipv4.method manual \
  ipv4.addresses 192.168.1.10/24 \
  ipv4.gateway 192.168.1.1 \
  ipv4.dns 127.0.0.1
sudo nmcli con up "preconfigured"

这里假设路由器地址是192.168.1.1,我们把树莓派固定在192.168.1.10,并把本机DNS指向127.0.0.1,为后面Pi-hole的运行做好铺垫。配置完成后用ping 192.168.1.1确认网络通畅。

三、安装并配置Pi-hole

Pi-hole是整套方案的核心,它本质上是一个本地的DNS解析服务,内置了数十万条广告域名黑名单。当家里任何设备发起域名查询时,Pi-hole会先判断该域名是否在黑名单中:如果是广告域名就直接拦截,返回空结果;正常域名则转发给上游DNS获取真实IP。整个过滤过程发生在网络层,浏览器、手机App里的广告都会被大量干掉,而且不需要在每个设备上单独装广告插件。

安装过程只需一条命令:

curl -sSL https://install.pi-hole.net | sudo bash

安装向导中会有几个关键选项:上游DNS提供商可以先随便选一个,后面会换成Unbound;监听接口选择eth0或wlan0(取决于你用有线还是无线);Web管理界面建议开启,方便日常查看拦截统计。安装完成后终端会显示管理后台地址和随机生成的管理员密码,务必记下来。如果忘了密码,随时可以用下面的命令重置:

pihole -a -p 你的新密码

装好后打开浏览器访问http://192.168.1.10/admin,就能看到实时查询量、广告拦截率等仪表盘数据。此时可以手动把电脑的DNS改成192.168.1.10试一试,访问几个常去的网站,观察仪表盘里拦截列表是否在增长。

四、集成Unbound实现自主递归解析

默认情况下Pi-hole会把查询转发给谷歌、Cloudflare等公共DNS,这意味着你的访问记录仍会被这些服务商看到。如果想把隐私做到极致,可以加装Unbound,让它直接从根域名服务器开始逐级递归查询,不再依赖任何第三方DNS服务商。

安装Unbound很简单:

sudo apt install -y unbound

然后创建配置文件,关键点是监听端口要设为5335,避开Pi-hole占用的53端口,同时关闭DNSSEC验证中不必要的部分,因为Unbound本身会完成完整验证:

sudo nano /etc/unbound/unbound.conf.d/pi-hole.conf

配置内容如下:

server:
    verbosity: 0
    port: 5335
    do-ip4: yes
    do-udp: yes
    do-tcp: yes
    prefetch: yes
    harden-glue: yes
    harden-dnssec-stripped: yes
    edns-buffer-size: 1232

保存后重启服务并测试,如果输出结果末尾包含flags: qr rd ra以及NOERROR字样,说明递归解析工作正常:

sudo service unbound restart
dig pi-hole.net @127.0.0.1 -p 5335

最后在Pi-hole后台的Settings菜单中,把上游DNS改为127.0.0.1#5335,取消勾选所有默认的公共DNS,保存即可。从此家里的每一次域名解析都由树莓派独立完成。

五、让全屋设备用上新DNS

单个设备手动改DNS显然不现实,正确做法是在路由器的DHCP设置里,把下发的DNS服务器地址改为192.168.1.10。这样所有连入家里Wi-Fi的设备会自动获得新DNS,手机、平板、智能电视、IoT设备一网打尽,无需逐台配置。各品牌路由器入口不同,一般在“DHCP设置”或“LAN设置”里都能找到DNS字段。

修改后让设备重新连接一次Wi-Fi(或重启路由器)即可生效。验证方法很简单:在任意设备上访问http://192.168.1.10/admin的查询日志页面,应该能看到来自各个内网IP的查询记录。也可以访问一些广告密集的网站,对比广告数量的变化。需要提醒的是,部分App内嵌了自己的DNS(比如某些国产App写死了HTTPDNS),这类流量Pi-hole无法拦截,属于正常现象。

此外建议开启Pi-hole的本地DNS记录功能,把常用的内网服务(比如NAS、家庭影音服务器)绑定一个好记的域名,访问体验会好很多;再配合FTLDNS的缓存机制,热门域名的二次解析几乎是毫秒级返回。

六、日常维护与故障排查

树莓派长期运行主要注意两点:一是散热,虽然DNS服务负载不高,但夏季密闭环境里加一块散热片更稳妥;二是TF卡的寿命,可以定期用pihole -g手动更新广告黑名单,同时留意磁盘空间。也可以设置定时任务每周自动更新:

sudo crontab -e
# 每周日凌晨三点更新黑名单并重启DNS服务
0 3 * * 0 pihole -g >/dev/null 2>&1

如果遇到全屋设备突然无法解析域名,排查思路按照从近到远:先用ping 192.168.1.10确认树莓派是否在线;再在树莓派本机执行pihole status查看服务状态;接着用dig baidu.com @192.168.1.10测试DNS响应。若Pi-hole本身正常但解析失败,多半是Unbound配置问题,可以用sudo unbound-checkconf检查配置语法,或查看/var/log/pihole.log中的详细日志。

还有一种常见情况是某个网站被误杀导致打不开,此时在Pi-hole后台的查询日志里搜索该域名,将其加入白名单即可。白名单功能支持通配符,处理一批相关域名很方便。

总体来说,用树莓派搭建家庭DNS服务器是一次投入极小、收益持续的项目。一块几百块的板子,换来的是全屋设备的广告拦截、更快的解析速度和完全自主可控的DNS解析链路,对于家中有NAS、智能家居设备的用户,还能顺手获得内网域名解析的便利,非常值得一试。

树莓派树莓派DNS服务器Pi-hole修改时间:2026-09-09 15:29:18

免责声明:已尽一切努力确保本网站所含信息的准确性。网站作品多为原创整理与精心创作,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们进行处理Email:chomcom@qq.com。
引用或转载本作品时,请注明当前出处:https://www.ipipp.com/html/20260909/53446.html,基于非商业用途的前提下,欢迎转载或二创本作品。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。