修复BIND9 rndc错误“连接到远程主机closures”

我只是在Webmin中对DNS区域进行了一些更改,然后单击“Apply Changes”(应用更改)button。 我收到错误消息:

rndc:连接到远程主机closures这可能表示远程服务器正在使用较早版本的命令协议,该主机未被授权连接,或者该密钥无效

我如何解决/修复这个问题? 我从一个失败的服务器复制BINDconfiguration的一部分,所以我怀疑这是什么原因导致它…

确保文件/etc/rndc.conf存在并拥有

 key somekey { algorithm hmac-md5; secret "somesecret"; }; 

而且在/etc/named.conf中也有相应的部分:

 key "somename" { algorithm hmac-md5; secret "somesecret"; }; controls { inet * port someport allow {"somegroup";} keys {"somename";}; }; 

不要忘记阅读named.conf(5)和rndc.conf(5)

如果没有帮助,请执行错误消息中描述的内容:检查命名和rndc版本(应该是相同的)

在@plluksie的帮助下,我自己解决了这个问题。 以下是我所做的:

  1. 首先,我运行rndc-confgen -a来重新生成我的rndc密钥和conf文件。
  2. 接下来,我validation了/etc/rndc.key的内容与/var/named/chroot/etc/rndc.key相同。 他们是( /etc/rndc.key是我系统上/var/named/chroot//etc/rndc.key的符号链接)
  3. 然后我编辑/etc/rndc.key并复制新的密钥。 我把这个密钥粘贴到/etc/rndc.conf/var/named/chroot/etc/rndc.conf
  4. 我通过/etc/init.d/named restart重新启动BIND,并使用: rndc reload some.zome进行testing。

这些步骤为我解决了这个问题。

你换钥匙吗? 如果在执行之前不停止服务,则服务器守护程序中logging的密钥是旧的,并且rndc始终使用新的密钥。 然后这些键是不同的,所以被绑定拒绝。 你必须杀死守护进程,然后重新启动它。 钥匙重新读取configuration阅读和使用。