Bind9域名区域加载失败,提示文件未找到问题求助
Bind9域名区域加载失败,提示文件未找到问题求助
嘿,我一眼就瞅到你这问题的症结了!先看看你遇到的错误:
zone example.com/IN: loading from master file etc/bind/zones/db.example.com failed: file not found
zone example.com/IN: not loaded due to errors.
再对照你贴的named.conf.local配置片段:
zone "example.com" { type master; file "etc/bind/zones/db.example.com"; # zone file path allow-transfer { 10.0.0.0/8; }; };
问题就出在区域文件的路径上!你写的是相对路径etc/bind/zones/db.example.com,Bind9运行时不会以根目录为基准找文件,它会从自己的工作目录开始检索,自然就找不到这个文件了。
最直接的解决办法
把路径改成绝对路径,也就是在开头加上斜杠/,修改后的配置应该是这样:
zone "example.com" { type master; file "/etc/bind/zones/db.example.com"; # 修正为绝对路径 allow-transfer { 10.0.0.0/8; }; };
额外的几个检查点,帮你彻底解决问题
- 先确认
/etc/bind/zones/这个目录真的存在,而且Bind9的运行用户(一般是bind用户)有读取这个目录和里面文件的权限,可以用sudo chown -R bind:bind /etc/bind/zones和sudo chmod -R 755 /etc/bind/zones来调整权限 - 你贴的区域文件内容好像截断了,记得要补全NS记录,比如在SOA记录下面加上:
@ IN NS ns1.example.com. ns1 IN A 你的服务器实际IP地址 - 改完配置和区域文件后,一定要重启Bind9服务生效,命令是
sudo systemctl restart bind9(如果是老系统可能用sudo service bind9 restart)
备注:内容来源于stack exchange,提问作者Chuck Slayton
相关产品推荐
相关产品推荐

