Debian BIND 不响应查询?
Debian 上部署的 BIND 不响应 DNS 查询。按服务状态、监听地址、区域文件语法、防火墙放行 53 顺序排查,区分服务没起、只监听本机与配置语法错误三类问题。
简短答案
BIND 不响应查询,按「服务在不在 → 监听地址对不对 → 区域文件有没有语法错 → 防火墙放没放 53」顺序排查。最常见是只监听 127.0.0.1 或区域文件写错导致服务没起来。
现象对照
| 现象 | 含义 |
|---|---|
| 本机查得到、外部查不到 | BIND 只监听本机地址 |
| 外部超时、服务也异常 | 服务没起来(多半配置/区域文件错) |
| 服务在、外部仍不通 | 防火墙/安全组挡了 53 |
排查步骤
# 1. 服务状态
systemctl status named --no-pager # 服务名以实际安装为准
# 2. 监听地址(重点看是不是只有 127.0.0.1)
sudo ss -lnup | grep 53
# 3. 区域文件语法检查(工具包名/命令以条目页为准)
# 对每个 zone 文件做语法校验,有错先修配置再起服务
# 4. 防火墙放行 53
sudo ufw status
sudo ufw allow 53/tcp
sudo ufw allow 53/udp
- 只监听 127.0.0.1:改 BIND 配置的监听地址为对外网卡地址,改完重载服务再验证;监听配置写法以条目页为准。
- 区域文件语法错:用官方校验工具逐个查,先修配置再起服务,别带着错配置反复重启。
- 防火墙:53 要 tcp+udp 都放,只放一个会半通。
注意:BIND 服务名与校验工具因版本而异(
named或其它包名),操作前以 Debian 13.7.0 DVD-1 条目 和条目页实际安装为准;总览 Debian 索引,最小安装取包见 Debian 13.7.0 netinst 条目。
操作小结
systemctl status看服务活着没。ss -lnup查监听地址是否对外。- 校验区域文件语法,先修配置再起服务。
- 防火墙放行 53(tcp+udp)。