我把网络的 DNS 转移到了我的 NAS,这是我做过的最实用的家庭实验室升级
大多数人认为 NAS 是一个存储备份、媒体和文档的盒子,但这低估了 NAS 当它整天连接在你的网络上时能做的事情。NAS 是家庭实验室中少数几台通常保持开机、通过以太网连接且足够稳定以承担小型基础设施任务的机器之一。这使它成为运行私人 DNS 服务器的好地方。
有用的部分在于,DNS 并不是某种抽象的企业服务。你网络上的每一部手机、笔记本电脑、电视、容器以及各种随机智能设备,在做任何事情之前都依赖它。当 DNS 默认由路由器或 ISP 处理时,你通常几乎无法控制,而且几乎看不到任何信息。将其转移到你的 NAS 可以改变这种情况,而不会让你的家庭实验室变成一份全职工作,你还可以屏蔽明显的垃圾信息,查看哪些设备通讯过多,并为内部服务创建本地名称。对于已经安静运行在角落里的机器来说,这是对你已经拥有的硬件的实际利用。
为什么NAS是DNS的好地方
当网络的其他部分需要它时,它已经在运行了
DNS 应该运行在一个不断运行的机器上……桌面电脑并不理想,因为它会进入睡眠、重启,或用于各种用途。笔记本电脑会移动,而树莓派运行良好,但并不是每个人都想要另一个设备和电源适配器。NAS 通常不同,它通常放在路由器附近,保持在线,并且在网络中已经有固定的角色。如果它运行的是 OpenMediaVault、TrueNAS、Unraid 或普通的 Linux 安装,通常可以运行轻量级的 DNS 服务而不会注意到额外的负载。
AdGuard Home、Pi-hole 和 Technitium DNS 都是不错的选择。AdGuard Home 通常是最适合简单家庭设置的,因为它的界面干净,而且初次设置不需要你做太多操作。你可以获取仪表盘、查询日志、拦截列表、上游设置和客户端统计数据,而无需从零搭建整个系统。在 OpenMediaVault 上,将其运行在容器中可以轻松地与 NAS 的其他部分分离设置。你可以使用他们的 Podman 插件,但 Docker 同样可以类似使用。
在你的 NAS 上运行私人 DNS 服务器
趣味挑战
认为你了解 DNS、NAS 和家庭网络吗?用这 8 个问题来测试你的技能吧。
DNS 代表什么?
在家运行自己的私人 DNS 服务器的主要优势是什么?
在家庭网络中,NAS代表什么?
以下哪一项是常用在家庭网络上的流行开源 DNS 黑洞应用?
谷歌知名公共 DNS 服务器的 IP 地址是多少?
为什么注重隐私的用户可能更倾向于使用自建的 DNS 服务器而不是像 Google DNS 这样的公共服务器?
标准 DNS 流量默认使用哪个端口?
哪款来自 Synology 的 NAS 操作系统允许用户通过 Docker 安装像 AdGuard Home 这样的容器化应用程序?
你的得分
感谢你的参与!
设置比听起来更简单
一个容器和两个文件夹就足够开始了
对于 OpenMediaVault,基本思路是为 AdGuard Home 创建持久化文件夹,然后运行容器。持久化文件夹很重要,因为你希望设置和日志在容器更新后仍然保留。一个最小的 Podman 设置如下所示:
mkdir -p /srv/containers/adguardhome/work /srv/containers/adguardhome/conf然后使用 Podman 运行 AdGuard Home。在实际设置中,你应该将 DNS 绑定到实际的 NAS IP,尤其是在 systemd-resolved 已经监听本地 53 端口的情况下。
podman run -d --name adguardhome --restart=always \
-v /srv/containers/adguardhome/work:/opt/adguardhome/work \
-v /srv/containers/adguardhome/conf:/opt/adguardhome/conf \
-p NAS_IP:53:53/tcp -p NAS_IP:53:53/udp \
-p 3000:3000/tcp -p 8080:80/tcp \
docker.io/adguard/adguardhome:latest之后,打开设置页面:
http://NAS_IP:3000在设置过程中,在容器内保持Web界面端口为80,DNS端口为53。由于主机将容器端口80映射到端口8080,仪表板可以通过 http://NAS_IP:8080 访问。
这是基本的安装,但重要的不是记住命令,而是要理解设置的结构:持久数据、DNS端口53、安全端口上的网页界面,以及客户端使用的NAS IP。
先使用普通上游 DNS
花哨的 DNS 可以等基础工作正常运行后再做
AdGuard Home 支持 DNS-over-HTTPS 及其他加密上游选项。它们很有用,但我不建议在调试期间首先启用它们。
从普通的上游解析器开始,例如 1.1.1.1、9.9.9.9 或 8.8.8.8。一旦基本的 DNS 工作正常,如果需要,你可以转向使用 DNS-over-HTTPS。这会使故障排除更容易,因为你知道第一个问题不是证书验证、引导 DNS,或容器内部的 HTTPS 问题。
最简单的测试是直接使用 dig 或 nslookup 询问你的 NAS DNS 服务器:
dig @NAS_IP google.com如果它返回正常答案,AdGuard 会响应,DNS 服务器正在运行。
然后测试一个常被屏蔽的域名,并从仪表板检查 AdGuard 查询日志。如果日志显示该查询并标记为已屏蔽,说明系统正在正常工作。你也可以使用 dig 命令来测试。例如,你可以检查类似 doubleclick 的内容:
它解析到 0.0.0.0,这意味着它被阻止了,并且服务器正在正常工作。
安装 AdGuard Home 只是完成了一半的工作。你的设备必须使用它,最干净的方法是打开路由器的 DHCP 设置,并将 DNS 服务器设置为 NAS 的 IP。设备在更新 DHCP 租约后,应该会自动将 NAS 作为它们的 DNS 服务器。
如果你的路由器不允许在 DHCP 设置中自定义 DNS,你可以在每个设备上手动设置 DNS。
一个小型升级,使 NAS 成为网络控制平面的一部分
在 NAS 上运行私有 DNS 并不光鲜,但它是家庭实验室中最实用的升级之一。它可以让你了解网络行为,减少不必要的请求,并将 DNS 控制集中到已经运行的机器上。
这就是我个人喜欢的那种自托管。不是需要不断维护的复杂系统,而是一个 quietly 改善日常使用的有用服务,你可以一次性设置好它,将路由器指向它,然后在需要了解发生了什么时查看仪表板。你的 NAS 已经在那里,开着电源等待着。让它再做一件事吧!







