Show HN: Nomina – 适用于家庭实验室的单二进制 DNS 与命名服务器,带 WebUI
Nomina 是一款用 Rust 编写的轻量级 DNS 和命名服务器,以单一二进制文件部署,并附带 WebUI 管理界面。它支持 Split Horizon DNS、动态 DNS、广告拦截(类似 PiHole)、DHCP4+6 服务器、AXFR/IXFR 区域传输以及记录重写等功能,可替代 PowerDNS、Bind 和 PiHole 等常见家庭实验室工具组合。
背景速读
- Nomina 是一个用 Rust 编写的单二进制 DNS 和名称服务器,面向家庭实验室 (homelab) 用户。它将 PowerDNS、Bind、PiHole 等多个传统工具的功能合并到一个软件中。
- 家庭实验室 (homelab) 指在家自建的小型服务器环境,用于学习、测试或运行自托管服务。DNS 是其关键基础设施,但传统方案配置复杂:Bind 是老牌权威 DNS 服务器,配置繁琐;PowerDNS 功能强但需要数据库;PiHole 主要用于广告屏蔽,缺乏权威 DNS 能力。
- Split Horizon DNS 是核心功能:根据请求来源 IP 返回不同 DNS 记录。例如,内网设备访问 "myhome.example" 得到 192.168.x.x,外网设备则得到公网 IP。
- 其他功能包括:动态 DNS (DynDNS,用于不固定公网 IP 的环境)、DHCP 服务器 (IPv4+IPv6)、区传输 (AXFR/IXFR,DNS 记录同步标准)、广告域名屏蔽 (Blocklist,PiHole 核心功能)、记录重写 (Rewrite)。
- 技术层面:单二进制部署 (single binary) 降低了部署复杂度 — 不需要解释型语言的运行时或数据库依赖。Rust 语言提供内存安全和高性能。