ubuntu20.04 bind9 dig命令不管解析哪个域名,他都能解析,即使该域名没有定义。这是为什么?我应该如何让它只能解析自己负责的域名
时间: 2024-02-09 09:06:54 浏览: 74
这种情况可能是因为 Bind9 的配置文件中启用了递归解析(recursion),导致它可以解析任何域名。如果你希望 Bind9 只能解析自己负责的域名,可以按照以下步骤进行修改:
1. 打开 Bind9 的配置文件 `/etc/bind/named.conf.options`。
2. 在文件中找到 `options` 段,查找是否有 `recursion yes;`,如果有,请将其改为 `recursion no;`。
3. 如果你希望 Bind9 只能解析自己负责的域名,可以在 `options` 段中添加 `allow-recursion { localhost; };`,这样只有本地主机才能使用 Bind9 进行递归解析。
4. 保存文件并重启 Bind9 服务:`sudo systemctl restart bind9`。
这样修改之后,Bind9 将只能解析自己负责的域名,并且只有本地主机可以使用递归解析。
相关问题
ubuntu20.04 bind9 dig命令不管解析哪个域名,他都能解析,即使该域名没有定义。这是为什么
这可能是因为你的Ubuntu 20.04上的Bind9使用了默认配置,其中包含了一些默认的DNS解析规则。当你使用dig命令来解析一个未定义的域名时,Bind9会尝试使用这些默认规则来解析该域名。如果没有找到匹配的规则,它可能会尝试使用递归解析来查找该域名的DNS记录。这可能会导致看起来像是Bind9可以解析任何域名的情况发生。
但值得注意的是,这种行为并不是符合DNS协议规范的,因为DNS服务器应该只能解析自己所负责的域名。如果你想让Bind9只解析特定的域名,你需要修改它的配置文件,删除默认的解析规则,并配置正确的域名解析规则。
我在ubuntu20.04系统下载了一个bind9,我该怎么样配置才能实现解析自定义域名
首先,在Ubuntu 20.04上安装bind9:
```
sudo apt-get update
sudo apt-get install bind9
```
然后,打开named.conf文件,并添加以下内容:
```
zone "example.com" {
type master;
file "/etc/bind/db.example.com";
};
```
这里的“example.com”是你想要解析的域名,你需要将其替换为你自己的域名。接下来,创建一个名为“db.example.com”的文件并添加以下内容:
```
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2010011001
28800
3600
604800
38400 )
IN NS ns1.example.com.
IN MX 10 mail.example.com.
ns1 IN A 192.168.1.1
www IN A 192.168.1.2
mail IN A 192.168.1.3
```
这里的“example.com”应该与前面的zone声明匹配。你需要根据你的实际情况更改IP地址和域名。最后,重启bind9服务:
```
sudo systemctl restart bind9
```
现在,你应该能够在Ubuntu 20.04上成功解析你的自定义域名了。
阅读全文