我正在尝试完成 Bind9 DNS 服务器的设置。
两个系统都运行 Debian Stretch。服务计算机(192.168.0.113)
是 VM 主机,客户端计算机(192.168.0.104)
是其虚拟访客。
服务器似乎运行正常,但我得到了一些令人困惑的结果。该host
命令如我所愿地解析:
$ host wiles.local
wiles.local has address 192.168.0.113
但是我无法在其他地方通过主机名引用系统:
$ ssh wiles.local
ssh: Could not resolve hostname wiles.local: Name or service not known
当然,我可以通过显式引用 IP 来 ssh 进入系统,不会出现任何问题。
客户端计算机似乎确实在正确的位置寻找其 DNS:
$ nslookup google.com
Server: 192.168.0.113
Address: 192.168.0.113#53
Non-authoritative answer:
Name: google.com
Address: 216.58.192.206
我希望有人能帮助我弄清楚这里的区别是什么以及我可以做些什么来解决这个问题。
我将给出我所知道的相关配置信息:
在服务系统上:
/etc/bind/named.conf.local
zone "wiles.local" {
type master;
file "/etc/bind/db.wiles.local";
};
/etc/bind/db.wiles.local
$TTL 86400
@ IN SOA wiles.local. root.localhost. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
86400 ) ; Negative Cache TTL
;
IN A 192.168.0.113
@ IN NS localhost.
www IN A 192.168.0.104
在连接系统上:
/etc/网络/接口
auto lo enp0s3
iface lo inet loopback
iface enp0s3 inet static
address 192.168.0.104
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 192.168.0.113
最后:
/etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.0.113
关于最后一个文件的注释:我不得不违背响亮的警告并手写该行。在此之前,该系统将无法解析任何服务(无论是外部还是内部)的主机名。我相信这是一个单独的问题,可以通过安装和运行来解决resolvconf
,但我提到它只是为了防止问题相关。
答案1
正如 Johan Myréen 在评论中指出的那样,我的问题似乎是由使用保留 TLD 引起的。由于我没有使用 mDNS,因此从 切换到.local
可以.com
让我的名称解析正常工作。