dnsmasq 2.93 介绍与选型指南
dnsmasq 2.93 介绍与选型指南:官方资料溯源的轻量 DNS/DHCP/RA/PXE 一体工具定位、DNS 转发缓存与 DHCP 子系统架构、2.93 安全修复与快速上手,以及与 Unbound、BIND9、CoreDNS、PowerDNS Recursor 的量化选型对比(2026-10-19 实查,未做本地安装实测)。
dnsmasq 2.93 介绍与选型指南
目标:基于官方公开资料(thekelleys.org.uk 官方站、官方 CHANGELOG 与 man 文档)梳理 dnsmasq 的定位、架构、功能与选型口径,并与 Unbound、BIND9、CoreDNS、PowerDNS Recursor 做量化对比。本文仅做官方资料溯源,不做本地安装与运行实测;全部版本号、日期与社区数据于 2026-10-19 联网实查。
一、信息基准
1.1 查询说明
- 查询日期:2026-10-19。
- 信息获取方式:纯官方资料溯源(官方站 thekelleys.org.uk/dnsmasq 的 doc.html、CHANGELOG、下载目录与 LATEST_IS_2.93 标记文件),本文不做本地安装与运行实测。
- 版本结论:当前最新稳定版为 2.93(官方下载目录以 LATEST_IS_2.93 标记文件声明,该文件与 CHANGELOG 更新时间戳为 2026-06-04)。
1.2 版本依据
| 项目 | 实查结果(2026-10-19) | 来源 |
|---|---|---|
| 最新稳定版 | 2.93(LATEST_IS_2.93 标记,2026-06-04 更新) | thekelleys.org.uk/dnsmasq/ |
| 2.93 主要变更 | CVE-2026-2291 长域名堆覆盖漏洞的整库级修复、DNSSEC 通配符/RRSIG 边界修复、FreeBSD 15 inotify 支持、2.92 的 DHCPv6 中继回归修复 | 官方 CHANGELOG |
| 代码仓库 | 官方 git 自托管于 thekelleys.org.uk(git://thekelleys.org.uk/dnsmasq.git);GitHub imp/dnsmasq 为镜像 | 官方 doc.html |
| 开源许可 | GPL v2 或 v3 由使用者选择(官方原文「version 2 or version 3 at your discretion」) | 官方 doc.html License 一节 |
| GitHub stars | 396(GitHub 镜像 imp/dnsmasq,非官方主仓库,仅作参考) | GitHub 实查(2026-10-19) |
1.3 官方来源清单
二、软件概述
本文介绍的是 dnsmasq 2.93(官方 LATEST_IS_2.93 标记,2026-06-04 更新)。
dnsmasq 是面向小型网络的网络基础设施一体工具(官方 doc.html 定位):单进程同时提供 DNS(转发 + 缓存 + 本地域名)、DHCP(v4/v6、BOOTP、PXE)、路由通告(RA)与内置只读 TFTP 服务器,为资源受限的路由器/防火墙设备而生,也被广泛用于手机热点 tethering 与虚拟化框架的虚拟网络。项目由 Simon Kelley 个人主导维护,以 GPL v2/v3 双许可发布,被绝大多数 Linux 发行版与 FreeBSD/OpenBSD/NetBSD 的 ports 收录(官方 doc.html 实查)。
需要说明的是,dnsmasq 无独立官网之外的文档站,官方 doc.html + man + CHANGELOG 即全部权威文档;其 GitHub 仓库为镜像,社区数据(stars 396)不反映真实使用规模——它几乎是 Linux 桌面/路由固件中装机量最大的 DNS/DHCP 组件。
三、核心架构
以下要素转述自官方 doc.html 与 man 手册(查询日期 2026-10-19)。
3.1 DNS 子系统
- 本地 DNS 服务器:为局域网提供递归转发(所有查询类型转发给上游)与常见记录类型缓存(A、AAAA、CNAME、PTR;启用 DNSSEC 时含 DNSKEY/DS);
- 本地域名来源:/etc/hosts、DHCP 租约自动登记、配置文件中的多种记录类型;
- 上游选择:可按域名分流指定上游(子域指向独立上游服务器,便于 VPN 拆分解析),支持上游动态变化;
- 权威模式:可将本地域名导出为一个全局 DNS 中的区,dnsmasq 作为该区权威服务器并支持向辅服务器做区传输(AXFR);
- DNSSEC:对上游应答做验证,防欺骗与缓存投毒;支持国际化域名。
3.2 DHCP/RA/TFTP 子系统
- DHCPv4/v6、BOOTP 与完整 PXE 服务器(支持网络启动菜单与多架构、与既有 DHCP 服务器共存的 proxy-mode);
- 静态租约与动态租约并存,DHCPv6 无状态模式;
- DHCP 分配的机器名自动进入 DNS(可按机器或按 MAC/UID 集中指定);
- RA 子系统为 IPv6 主机提供基本自动配置(可独立运行或与 DHCPv6 配合,M/O 位与 RDNSS 选项可调);
- 内置只读 TFTP 服务器支撑网络启动;未使用的功能可在编译期裁剪以缩减体积。
四、功能特性
4.1 一体化能力
- 单二进制/单配置文件(/etc/dnsmasq.conf)承载 DNS + DHCP + RA + TFTP + PXE;
- 按接口/地址绑定监听、条件转发(server=/domain/upstream)、address= 本地改写等经典指令;
- DNSSEC 校验、按域上游分流、权威小域导出(官方 doc.html)。
4.2 2.93 系列状态
2.93 为当前稳定线(2026-06-04 口径):核心变化是将长域名存储分配整体重构以根治 CVE-2026-2291(堆覆盖)——官方说明此前发布过单点补丁,2.93 做了全代码库级修正;同时修复 DNSSEC 通配符与伪 RRSIG 导致的验证失败、2.92 引入的 DHCPv6 中继回归,并为 FreeBSD 15 启用 inotify(官方 CHANGELOG 实查)。选型时应确保使用 2.93 或发行版内已含 CVE-2026-2291 补丁的版本。
4.3 工程形态
- 编译期特性裁剪(未用功能可去除),适配嵌入式与路由固件;
- 发行版普遍预装并随包提供 systemd 单元,通常「装完即需改配置」而无需额外部署组件。
五、快速上手
以下示例转述自官方文档(官方地址:https://thekelleys.org.uk/dnsmasq/doc.html 与 man 手册,本文不做本地实测)。
5.1 获取与安装
官方 doc.html 明确 dnsmasq「included in most Linux distributions」,发行版安装即官方推荐路径:
# Debian/Ubuntu 系
apt install dnsmasq
# RHEL 系
dnf install dnsmasq
源码路径:从官方下载目录获取 dnsmasq-2.93.tar.xz(官方站提供 tarball、签名与 man 文档)。
5.2 最小可用配置
# /etc/dnsmasq.conf —— 转述自官方 man 手册常用指令
domain-needed # 不转发裸主机名
bogus-priv # 反向查询私网地址不转发上游
server=223.5.5.5 # 上游 DNS(可多条;按域分流用 server=/example.com/10.0.0.1)
address=/test.internal/192.168.1.10 # 本地域名改写
dhcp-range=192.168.1.100,192.168.1.200,12h # DHCP 动态段
启动后 dnsmasq 即在本机 53 端口提供 DNS 缓存转发、在局域网提供 DHCP。指令级的逐项说明与生产模板,本站已实测整理为 《dnsmasq 配置参数详解》。
六、适用场景与限制
6.1 适用场景
- 家庭/小型办公网的 DNS 缓存转发 + DHCP 一体网关;
- OpenStack/Libvirt/Kubernetes 等虚拟化与容器平台的内嵌 DNS/DHCP 组件(官方 doc.html 提及虚拟化框架用途);
- 路由器/防火墙固件(OpenWrt 等)的资源受限网络服务;
- PXE 网络装机与 TFTP 引导配套。
6.2 限制与注意事项
- 缓存无磁盘持久化、无复杂负载均衡与观测面,不适合作为大型企业递归出口;
- 权威服务仅面向「本地小域导出」的有限场景,不是全功能权威 DNS;
- 安全通告集中在解析边界(如 CVE-2026-2291 长域名堆覆盖),需紧跟发行版补丁节奏;
- 个人主导的项目治理:发版节奏与响应依赖维护者,重大漏洞期偶有集中补丁发布(CHANGELOG 口径)。
七、同类选型对比
7.1 候选概览
| 工具 | 定位 | 开源许可 |
|---|---|---|
| dnsmasq 2.93 | SOHO 级 DNS+DHCP+RA+PXE 一体工具 | GPL-2.0 或 GPL-3.0 |
| Unbound 1.26.1 | 验证型递归缓存解析器 | BSD-3-Clause |
| BIND 9.20 | 全功能 DNS 套件(权威+递归) | MPL-2.0 |
| CoreDNS 1.14 | 插件化 DNS 服务器(K8s 生态) | Apache-2.0 |
| PowerDNS Recursor 5.1 | 可编程递归解析器 | GPL-2.0 |
7.2 量化对比(2026-10-19 实查)
| 维度 | dnsmasq 2.93 | Unbound 1.26.1 | BIND 9.20.29 | CoreDNS 1.14.7 | PowerDNS Recursor 5.1.10 |
|---|---|---|---|---|---|
| 开源许可 | GPL-2.0/3.0 双选 | BSD-3-Clause | MPL-2.0 | Apache-2.0 | GPL-2.0 |
| GitHub stars | 396(imp/dnsmasq 镜像,主仓库自托管) | 4990(NLnetLabs/unbound) | 781(isc-projects/bind9,主仓库在 GitLab.isc.org) | 14385(coredns/coredns) | 4500(PowerDNS/pdns 共仓) |
| 最近发版 | 2.93(LATEST 标记 2026-06-04) | 1.26.1(2026-09-16) | 9.20.29(2026-09) | v1.14.7(2026-08-19) | 5.1.10(2026-02-09) |
| 版本节奏 | 2.x 长线演进 | 补丁型稳定线,安全响应快 | 稳定线/ESV/开发线三轨 | minor 持续推进 | 5.1 线补丁维护 |
| DHCP/PXE | 内置(v4/v6/BOOTP/PXE/TFTP) | 无 | 可配套(独立 dhcpd) | 无 | 无 |
| 典型场景 | 家庭/小网关、虚拟化内嵌 | 企业递归出口、DNSSEC 验证 | 传统企业权威+递归全套 | K8s 集群 DNS、插件化转发 | Lua 可编程递归(运营商) |
(stars 与发版时间取自各项目 GitHub Releases 页、官方站点与 CHANGELOG 实查,查询日期 2026-10-19;与《Unbound 1.26 介绍与选型指南》同源口径;许可见各自仓库或官网 LICENSE 说明。)
7.3 选型建议
- 要「一台小机器同时管 DNS、DHCP、PXE」,dnsmasq 一体化的工程价值没有对手,家庭路由器与虚拟化平台内嵌是它的主场;
- 纯递归解析、看重 DNSSEC 验证与企业级安全响应,选 Unbound(详见 《Unbound 1.26 介绍与选型指南》);
- 权威 + 递归全套与标准企业 DNS 能力选 BIND 9;Kubernetes/插件化转发选 CoreDNS(详见 《CoreDNS 1.14 介绍与选型指南》);
- 需要脚本化递归策略选 PowerDNS Recursor;生产组合常见「dnsmasq 做局域网 DHCP/前端缓存 + 上游指向 Unbound 递归」,两者互补而非互替。
八、参考链接
- 官方文档页:https://thekelleys.org.uk/dnsmasq/doc.html
- 官方 CHANGELOG:https://thekelleys.org.uk/dnsmasq/CHANGELOG
- 官方下载目录:https://thekelleys.org.uk/dnsmasq/
- man 手册:https://thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html
- Unbound 仓库:https://github.com/NLnetLabs/unbound
- BIND 9 仓库:https://gitlab.isc.org/isc-projects/bind9
- CoreDNS 仓库:https://github.com/coredns/coredns
- PowerDNS 仓库:https://github.com/PowerDNS/pdns