我正在使用 Debian 10。我安装了 bind9:
sudo apt-get install bind9 bind9utils dnsutils
我准备了自己的配置文件(在路径中/home/student/dns/myconf.conf
):
options {
directory "/var/named";
listen-on port 53 {127.0.0.1;};
transfer-source 127.0.0.1;
};
include "/etc/bind/rndc.key";
controls{
inet 127.0.0.1 port 953 allow {127.0.0.1;}
keys{rndc-key;};
};
检查了它:
sudo /etc/init.d/bind9 stop
sudo rndc-confgen -a -u bind -t /home/student/dns
sudo /etc/init.d/bind9 start
然后尝试运行它:
sudo /usr/sbin/named -u bind -t /home/student/dns
但是当我这样做的时候,我想检查它是否有效:
sudo ps aux | grep named
但它什么都没显示。当我sudo service bind9 status
这样做时,它被激活了。出了什么问题?我应该使用 chroot 还是其他什么?为什么这不起作用?
此外,我无法让 Bind 记录日志。
答案1
BIND 配置文件的默认位置是
/etc/bind/named.conf
您可以通过查看系统日志来确认加载了哪个 .conf 文件
cat /var/log/syslog |grep "loading configuration"
您可能会看到以下错误之一
May 13 02:16:17 debian named[1947]: loading configuration from '/etc/bind/named.conf'
May 13 02:21:07 debian named[2078]: loading configuration: permission denied
May 13 02:23:38 debian named[2149]: loading configuration: file not found
您还需要使用 -c 选项来指定您自己的配置文件。
sudo /usr/sbin/named -c /home/madato/dns/myconf.conf
然而,我还没有能够成功启动命名在 Debian 10 上,当 CONF 文件位于默认目录以外的任何其他目录下时/etc/bind/
似乎有一些硬编码检查只允许命名阅读conf 文件位于该特定目录中。
我建议将 myconf.conf 文件保留在 /etc/bind/ 中,然后重试。或者使用指向原始文件的软链接文件。