主机命令成功但 DNS 无法解析

主机命令成功但 DNS 无法解析

我正在尝试完成 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让我的名称解析正常工作。

相关内容