因此,在 Windows 中,如果我输入ping familyroom
,它会告诉我家庭房间中的 PC 是 192.168.1.61。(DHCP 分配的地址不在任何 DNS 中)
我正在运行新安装的 Ubuntu 14.04 Trusty Tahr LTS,如果我尝试ping familyroom
,我会得到未知主机。但是,如果我尝试ping familyroom.local
,我会从同一个 IP 地址获得成功响应。
现在我意识到我只能使用包含 .local 域的 FQDN,但我很懒,我想让 Ubuntu 14.04 像 Windows 7 一样为我工作,这只是另一个让我恼火的吹毛求疵的事情。
作为测试,我添加了一个search local
到新的/etc/resolvconf/resolv.conf.d/tail文件和resolvconf -u
,但我得到了相同的结果。我认为这是由于“zeroconf”对 .local 进行名称解析,但我不知道从哪里开始修复。
编辑:基于@heemal 的帮助,我现在意识到链接本地解析来自 Avahi,所以我专注于尝试让 Avahi 名称解析来查找短名称主机,或者找到 Avahi 的替代方案。
在 /etc/nsswitch.conf 文件中,我尝试为 DNS 未找到地址添加 Avahi 的完整 MDNS 功能。
Original hosts definition: `hosts: files mdns4_minimal [NOTFOUND=return] dns`
Unchanged results using: `hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4`
现在在 Windows 中,我看到此链接本地解析是通过 IPv6 进行的,我想知道 IPv6 规范中是否有改进可以帮助我。
答案1
如果在 上添加某些内容,/etc/resolvconf/resolve.conf.d/{head, base, tail}
则名称解析将由 执行resolvconf
,而不是由 执行avahi-daemon
,因此仅添加search local
并不能解析名称。
为了使其search domain
正常工作,您需要设置一个 DNS 服务器,该服务器将在您的系统正确添加域名后对您的查询做出响应。
另一个选择是在文件中添加/etc/hosts
如下条目:
familyroom 192.168.1.4
现在如果你ping familyroom
就会得到回应。
迄今为止最懒惰的选择是添加这样的别名:
alias familyroom='ping familyroom.local'
在~/.bashrc
文件中。现在source ~/.bashrc
您只需键入即可familyroom
将 ICMP 回显请求发送到设备。