在我的 debian 测试服务器上,当我运行 nsupdate 命令并手动输入详细信息时,一切正常。例如:
nsupdate -k /etc/bind/update.key
> update add PC1.direct.labo 3600 A 192.168.100.1
> send
> quit
之后,我在我的区域文件中找到了记录。 像那样
当我尝试使用输入文件时出现问题,我们称之为“order.dns”:
update add PC2.direct.labo 3600 A 192.168.100.2
show
send
quit
并执行它:
nsupdate order.dns -k /etc/bind/update.key
然后我得到update failed: REFUSED
我究竟做错了什么?
nsupdate 使用 BSD 样式的选项解析,其中所有选项必须在非选项(即位置)参数之前严格指定,如下所示:
在您的情况下,在文件名之后
-k
指定的 that不会被解释为选项,而是与(密钥文件名也是如此)一起成为另一个位置参数。order.dns
如果这是一个接受多个文件的程序,您会收到一条类似“
File '-k' not found
”的错误消息:但是由于 nsupdate 只接受一个文件名,附加的位置参数仍然被忽略。