“ .local”有什么作用?


26

我家里的网络上有几台Ubuntu计算机,但是DNS由Windows服务器(2K)提供。当我从另一个ssh到他们时,如果我以“ machine”的身份向他们ssh不能连接,但是如果我以“ machine.local”的身份向他们ssh可以连接。

我认为类似地,我无法从Windows客户端(如腻子)进行连接。

这里发生了什么?-这显然是Ubuntu的事情。


实际上,它看起来像DNS东西,根本不像Ubuntu东西(尤其是因为您“无法从Windows计算机连接”,并且错误消息仍然是什么?)。您的DNS配置(nameserver search)是什么?如何dig machine1从不同dig machine1.local
吉尔斯(Gillles)“所以-别再作恶了” 2010年

您是否会在Windows 2000 Server上安装Apple Bonjour或另一个Zeroconf实现?
托尔比约恩Ravn的安徒生

Answers:


34

默认情况下,Ubuntu包含avahi。这是zeroconf的实现,它允许使用虚拟“ .local”名称解析计算机主机名。每当您的计算机尝试连接到“ hostname.local”时,avahi都会执行本地网络广播,以查看是否有任何使用该主机名的计算机。运行avahi(或兼容产品)的其他计算机应回答。

如果查看/etc/nsswitch.conf,则会发现以下行:

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4

mdns4_minimal是使此重定向有效的配置设置。

您的问题实际上表明avahi运行成功,因为您说可以使用“ hostname.local”连接到Ubuntu计算机。但是,如果您尝试从另一台Ubuntu计算机或另一台Windows计算机进行连接,则不清楚(“当我从另一台ssh到它们时,...”)。如果不安装Bonjour之类的其他软件,Windows计算机将无法解析Zeroconf样式的“ hostname.local”名称。


Avahi链接感兴趣。简而言之,其复杂。
meawoppl 2013年

13

要解决您的问题,您只需要Avahi。这将向Windows公告您的Ubuntu计算机名称。

sudo apt-get install avahi-daemon

machinename.local之所以能够工作,是由于Apple创造了(IIRC)称为Bonjour的zeroconf的另一种实现(Avahi也是如此)。默认情况下已安装。我不知道为什么Avahi也不是,但考虑到它引起人们的困惑,很可能会成为现实。

Wikipedia上还有更多相关信息:http : //en.wikipedia.org/wiki/.local


我认为Avahi使用.lan
Broam

7
不,avahi使用.local,这是mDNS规范所必需的。
Kees Cook 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.