我有一台運行 VirtualBox 的 Windows 8 主機和一台運行 Ubuntu 14.4 LTS 虛擬機器。
在 Ubuntu VM 中,我可以存取和解析每個外部站點的 DNS(例如:www.google.com),並且可以按名字解析 Intranet 站點,例如:anothermachine。
如果我使用在 Windows 上有效的完全限定域名,例如 anothermachine.mywindowsdomain.local,則無法在 Ubuntu VM 內解析該名稱。
這個盒子是由 vagrant 創建的。
該盒子正在使用 NetworkManager。
我用來ping
檢查主機名稱是否正在解析。執行ping
mybox 有效,執行 ping mybox.mydomain.local 無效。這兩種方法都適用於同一網路上的任何其他電腦。
解析設定檔
# 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 10.0.2.3
nsswitch.conf
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: compat
group: compat
shadow: compat
hosts: files mdns4_minimal [NOTFOUND=return] dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
答案1
在我看來它是重複的無法解析本機網路中的 Windows 網域。
.local
在嘗試使用常規 DNS 伺服器之前,由 mDNS(Avahi 或 Bonjour)處理。 mDNS 應以以下形式解析名稱:machinename.local
如果未獲取,則傳回NOT FOUND
。
你正在使用的東西在哪裡anothermachine.mywindowsdomain.local
。這是應使用 DNS 解析的.local
完整限定網域名稱的一部分。mywindowsdomain.local
將名稱解析優先權清單變更
/etc/nsswitch.conf
為:hosts: files dns mdns4_minimal [NOTFOUND=return]
否則將 MS 網域變更為不同的名稱,例如:
mywindowsdomain.loc