我最初将此发布到 stack-overflow 是因为我认为他们可以给我一些见解,但是我只是被否决了,他们不明白我在标题中所说的内容。我正在尝试让 bind9 将我的域名解析为 IPv4 地址,但是 bind9 没有检测到我设置的名为/etc/bind/db.Domain.zone的解析文件,甚至没有检测到默认的本地文件 db.local
我真的很困惑如何解决这个问题,大约一个月前我向 bind9 支持发送了一个寻求帮助的请求,但我从未收到任何回复。所有者将我送到社区论坛,但我从未被接受。我已经安装了bind9 bind9utils bind9-doc bind9-host并且我还设置了我的主机文件如下,所以 O 也可以将我的主机名链接到它
echo -e "192.168.1.101 cheese.com chewy" >> /etc/hosts
hostnamectl set-hostname chewy
然后我能够运行ping -c cheese.com并在启用 ICMP 请求后在同一主机上收到响应,但我无法从网络中或网络外部的另一台计算机上 ping Evil.com,我的接下来是为我的偏好配置named.conf.options文件
acl TrustedPPL { 192.168.1.0/24; 192.168.1.101; };
acl NoAccess { 192.168.1.111; };
options {
directory "/var/cache/bind";
allow-query { TrustedPPL; };
blackhole { NoAccess; };
recursion yes;
allow-recursion { localnets; 192.168.1.0/24; };
listen-on port 53 { 192.168.1.101; 127.0.0.1; };
forwarders { 192.168.1.1; 8.8.8.8; 8.8.4.4; };
dnssec-validation auto;
dnssec-lookaside auto;
dnssec-enable yes;
auth-nxdomain no;
tcp-listen-queue 25;
transfers-in 25;
transfers-out 25;
tcp-clients 200;
};
此时我已经重新启动了 bind9,所以我会收到任何错误的通知,没有错误,所以我继续制作区域名称和区域文件,我还将包括区域文件的内容
echo -e 'zone "cheese.com" IN { type master; file "/etc/bind/db.Domain.zone"; };' > /etc/bind/named.conf.local
区域文件/etc/bind/db.Domain.zone
$TTL 3h
@ IN SOA cheese.com. root. (
15 ; Serial
3h ; Refresh
1h ; Retry
1w ; Expire
1h ) ; Negative Cache TTL
@ IN NS cheese.com.
@ IN A 192.168.1.101
然后我使用了dig cheese.com,我得到一个回复,显示 IPv4 是 192.168.1.101,然后我用nslookup确认它,它也准确无误。
所以我决定测试它的分辨率部分并将@ IN A 192.168.1.101 更改为 192.168.1.111然后更改序列号并重新启动 bind9 没有错误,我做了一个dig cheese.com并返回 192.168.1.101再次。所以此时我很好奇文件 db.Domain.zone 是否被检测到,所以我将文件 db.Domain.zone 与 db.local 一起完全删除,好吧 dig 和 nslookup 显示 bind9 甚至没有检测到它是自己的分辨率文件,因为它仍然返回 192.168.1.101 和 127.0.0.1 任何想法?
这是我的/etc/nsswitch.conf文件
passwd: compat systemd
group: compat systemd
shadow: compat
gshadow: files
hosts: dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
我也尝试过使用原始/etc/bind/named.conf.options文件进行此尝试,但没有任何变化。
也没有 dnsmasq 或 nscd 缓存守护进程
默认的localhost文件/etc/bind/db.local也从127.0.0.1改成了127.0.1.1之前删了看看是不是我的配置,dig还是返回了127.0.0.1,谁能确认这是一个bind9 问题,或者如果这是我的设置问题
您正在尝试在 localhost 上设置公共域。因此,它无法从其他位置解析。如果您只需要 LAN,请配置绑定,并让所有 LAN PC(或路由器)使用该绑定作为 DNS 服务器。
在其他情况下,如果您尝试设置公共域,请使用 Google 进行域停放。可以将域停放在您自己的服务器上,但它必须具有公共 IP,这是最糟糕的主意。
编辑(根据评论):我认为它工作正常,环回接口响应许多地址: