我遇到了一个非常奇怪的情况,我不太明白。我有一个主 DNS 和一个从 DNS,我检查了配置,没有返回任何错误。如果我尝试将 bind9 作为服务启动,它无法与从服务器正确同步:
sudo service bind9 start
我也尝试过通过以下方式启用它:
sudo systemctl enable bind9
再次,主服务器和从服务器不同步。我正在研究,有人建议运行命名在前台查看日志输出的内容。奇怪的是,当我在主服务器和service bind9 stop
从服务器上运行并运行时named -fg
,它们突然开始同步并传输必要的区域信息。
为什么当我明确运行named时它们会传输,而当我将bind9作为服务运行时却不会传输?我以为named和bind只是彼此的别名,所以我不太确定我是否理解在一种情况下与另一种情况下发生的事情的区别。
编辑:
使用 Raspberry Pi:Raspbian Lite systemctl status bind9 输出如下所示:
> shutting down: flushing changes stopping command channel on
> 127.0.0.1#953 dumping master file: /etc/bind/tmp-ew7u3atsWd: open: permission denied dumping master file: /etc/bind/tmp-CAP7c5Elmn: open:
> permission denied no longer listening on 127.0.0.1#53 no longer
> listening on 192.168.0.105#53 no longer listening on 10.1.10.29#53
> exiting bind9.service: Succeeded. Stopped BIND Domain Name Server.
第二次编辑
我不认为这是权限问题,因为我已将除 rndc.key 之外的所有内容的组和用户所有权设置为 bind:bind,但事实证明确实是。
在被指出潜在的权限问题后,我做了以下事情:
- chown bind:bind /etc/bind/named.conf
- chown root:root /etc/bind/rndc.key
- chmod 755 rndc.key
- chown bind:bind /var/cache/bind/
- chmod g+w /var/cache/bind/
- chmod g + w / etc / bind /
自那时起,它看起来正在正确更新。
答案1
我不认为这是权限问题,因为我已将除 rndc.key 之外的所有内容的组和用户所有权设置为 bind:bind,但事实证明确实是。
在被指出潜在的权限问题后,我做了以下事情:
- chown bind:bind /etc/bind/named.conf
- chown root:root /etc/bind/rndc.key
- chmod 755 rndc.key
- chown bind:bind /var/cache/bind/
- chmod g+w /var/cache/bind/
- chmod g + w / etc / bind /
自那时起,它看起来正在正确更新。
答案2
看来您将主文件放入了/etc/bind/
而它应该放入/var/lib/bind/
。绑定服务不允许写入/etc/bind/
而绑定进程需要在同一文件夹中写入区域文件的二进制版本(jnl 文件)。因此,将您的主区域文件移至/var/lib/bind/
并更新您放入的文件named.conf.local