Debian 上部署 DNS(BIND/dnsmasq)
Debian 上做内网 DNS:按需求选 BIND 或轻量 dnsmasq,安装、最小 zone 配置、转发器与 systemd-resolved 的分工,以及验证命令。
结论先行
内网 DNS 有两个常见选择:BIND 9(功能全、适合正式 zone 管理)或 dnsmasq(极轻量、顺带做 DHCP)。Debian 官方仓库两者都有,按规模选:小内网(几十台设备)dnsmasq 就够,多域名、需 NS 管理/二级域名用 BIND。
选型
| 场景 | 选择 |
|---|---|
| 内网 DNS + DHCP 一体机 | dnsmasq |
| 需要正式 zone 文件、NS/邮箱管理 | BIND 9 |
| 只做转发 + 解析本地记录 | dnsmasq |
最小部署(dnsmasq)
以 Debian 13.7.0 DVD-1 条目 为例:
sudo apt install dnsmasq
/etc/dnsmasq.conf:
listen-interface=eth0
domain-needed
local=/example.local/
address=/www.example.local/192.168.10.20
server=8.8.8.8
server=114.114.114.114
sudo systemctl restart dnsmasq,验证:dig @127.0.0.1 www.example.local。
注意:dnsmasq 的端口 53 若被 systemd-resolved 占用会启动失败,两者只能占一个端口;dnsmasq 场景通常把 resolved 改 listen-only 模式。
最小部署(BIND 9)
sudo apt install bind9
- 编辑
/etc/bind/named.conf增 zone。 - 在
/var/lib/bind/放 zone 文件,含 SOA / NS / A 记录。 rndc reload,systemctl status named看是否 active。
验证
dig @127.0.0.1 example.local
sudo systemctl status dnsmasq | named
journalctl -u dnsmasq