Debian

主機命令成功,但 DNS 無法解析

  • April 16, 2018

我正在嘗試完成我的 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,但我提到它以防萬一問題相關。

正如 Johan Myréen 在評論中指出的那樣,我的問題似乎是由使用保留的 TLD 引起的。由於我沒有使用 mDNS,從 切換.local.com允許我的名稱解析正常工作。

引用自:https://unix.stackexchange.com/questions/436676