You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bind9服务运行正常但DNS服务器本机无法解析域名并ping通主机的问题求助

Bind9服务运行正常但DNS服务器本机无法解析域名并ping通主机的问题求助

嘿,我来帮你排查这个问题!从你的描述来看,局域网内其他机器都能正常通过Bind9解析域名,唯独DNS服务器自己不行,这大概率是本机的DNS解析服务和Bind9的监听配置不匹配导致的,咱们一步步来解决:

1. 修正Bind9的监听地址配置

看你给出的/etc/bind/named.conf.options里,listen-on只设置了192.168.0.0/24,这意味着Bind9只监听局域网网卡的请求,没监听本地回环接口(127.0.0.1)。而你的DNS服务器本机默认是通过127.0.0.53(systemd-resolved的缓存服务)发起DNS请求的,自然连不上Bind9。

修改这个配置:

sudo nano /etc/bind/named.conf.options

把listen-on改成同时包含回环和局域网地址:

listen-on { 127.0.0.1; 192.168.0.0/24; };

保存后重启Bind9服务:

sudo systemctl restart bind9

2. 配置systemd-resolved正确转发请求到Bind9

Ubuntu 22.04默认用systemd-resolved管理DNS解析,它会先缓存请求再转发到配置的DNS服务器。虽然你在netplan里设置了指向本机的DNS,但有时候需要手动确认resolved的配置:

编辑resolved的配置文件:

sudo nano /etc/systemd/resolved.conf

确保以下配置项正确设置(去掉前面的注释符号):

[Resolve]
DNS=192.168.0.211
Domains=ent.com

保存后重启resolved服务:

sudo systemctl restart systemd-resolved

3. 验证配置是否生效

先检查Bind9是否已经监听回环地址:

sudo ss -tulpn | grep named

输出里应该能看到127.0.0.1:53和192.168.0.211:53的监听记录,说明Bind9已经在回环接口上提供服务了。

然后测试本机的解析:

nslookup webserver
ping webserver

如果还是有问题,可以直接指定Bind9地址测试,确认Bind9本身没问题:

nslookup webserver 192.168.0.211

如果这个命令能返回正确的IP,那就是resolved的配置还没生效,你可以尝试重启机器,或者手动修正resolv.conf的指向:

sudo rm /etc/resolv.conf
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

小提醒:反向区域文件名的笔误

看你贴的配置里,反向区域文件写的是/etc/bind/forward.ent.com,但反向区域应该对应reverse.ent.com吧?不过你说checkzone没问题,可能是粘贴时的笔误,这个如果不影响反向解析的话暂时不用管,但建议后续确认一下文件名是否正确。

按照上面的步骤操作后,你的DNS服务器本机应该就能正常解析域名了!

备注:内容来源于stack exchange,提问作者Ilya Shmadchenko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 13:37:49