我有一台运行 VirtualBox 的 Windows 8 主机和一台运行 Ubuntu 14.4 LTS 虚拟机的 Windows 8 主机。
在 Ubuntu VM 中,我可以访问和解析每个外部站点的 DNS(例如:www.google.com),并且可以通过名字解析内联网站点,例如: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
由 mDNS(Avahi 或 Bonjour)在尝试使用常规 DNS 服务器之前进行处理。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