用途:dnsmasq 提供 DNS 转发与 DHCP 服务,常用于局域网内的域名解析与 IP 地址分配。服务单元为 dnsmasq.service,主配置位于 /etc/dnsmasq.conf,并支持 /etc/dnsmasq.d/ 放入配置文件;租约文件为 /var/lib/misc/dnsmasq.leases。安装可用 apt install dnsmasq 或 dnf install dnsmasq。
主要能力:支持 DNS 转发、上游解析器设置、本地域名解析、静态 DHCP 租约、域名屏蔽(sinkhole)以及 DNSSEC 验证。默认监听 53/udp 与 53/tcp(DNS),启用 DHCP 时监听 67/udp。
常用操作:查看状态 systemctl status dnsmasq;重载配置 sudo systemctl reload dnsmasq;重启 sudo systemctl restart dnsmasq;校验配置 dnsmasq --test;查询 DNS dig @127.0.0.1 example.com;查看租约 cat /var/lib/misc/dnsmasq.leases;发送 HUP 信号重读 sudo kill -HUP $(pidof dnsmasq)。
健康检查:systemctl is-active dnsmasq 应为 active;dnsmasq --test 应输出语法检查通过;dig 查询应返回 IP 而非 SERVFAIL;ss -ulnp | grep ':53' 应看到 dnsmasq。
常见限制与故障:53 端口被 systemd-resolved 占用会导致启动失败,可设置 DNSStubListener=no;DHCP 未指定 interface= 时不会分配地址;未设置 server= 或上游不可达会返回 SERVFAIL;未设置 dhcp-option=6 时客户端拿不到 DNS;NetworkManager 可能覆盖 /etc/resolv.conf,需设置 dns=none 或与其内置 dnsmasq 插件二选一;/etc/dnsmasq.d/ 只有在 conf-dir 配置存在时才会被加载;DNSSEC 要求系统时间准确且上游支持相关记录。文档中另有完整注释配置与官方文档链接。