我的家庭网络上有一些Linux服务器,可以通过“ hostname.local”访问,但是使用Windows计算机时,除非我通过IP地址访问,否则它们似乎无法解决。
如何使Windows计算机能够解析hostname.local地址?我知道如何编辑,C:\Windows\System32\drivers\etc\hosts
但是肯定有某种自动的方法可以使Windows只找到这些机器?
我的家庭网络上有一些Linux服务器,可以通过“ hostname.local”访问,但是使用Windows计算机时,除非我通过IP地址访问,否则它们似乎无法解决。
如何使Windows计算机能够解析hostname.local地址?我知道如何编辑,C:\Windows\System32\drivers\etc\hosts
但是肯定有某种自动的方法可以使Windows只找到这些机器?
Answers:
通常,.local
名称是使用mDNS解析的-Linux服务器可能运行Avahi,而Windows则使用苹果自己的Bonjour。
Bonjour Print Services中包含了早期版本的Bonjour(v2.0)。它也可作为Chocolatey包装提供。
最新版本(v3.x)不能单独下载,但是作为iTunes(和一些其他应用程序)的一部分安装。可以使用存档管理器(例如7-Zip或WinRAR)Bonjour64.msi
从iTunes安装程序中提取。
msiexec /a iTunes.msi TARGETPATH=iTunes.out
。
正如@Kevin Keane在此处(以及上面的评论部分)所指出的那样,Windows 10现在使用仅适用于现代Windows应用程序的服务掩盖了mDNS端口5353。因此,要让Bonjour返回端口,必须通过上面链接中描述的注册表编辑来取消Windows mDNS服务。
在Windows 10而非Home而不是注册表编辑器的版本中,可以使用组策略编辑器:
我不必重启。
请注意,我已经安装了iTunes和Bonjour打印服务。只是简单地卸载Bonjour Print Services并重新安装是行不通的-我不得不进入添加删除程序,卸载Bonjour和Bonjour Print Services,然后重新安装Bonjour Print Services,然后才能ping通.local地址再次开始工作(仅适用于Virtualbox主机)运行avahi-daemon的linux guest虚拟机)。我认为这是因为我的“ Bonjour服务”服务与Bonjour(而不是Bonjour印刷服务)相关联,并且没有在重新注册自己。
.local
Linux上,相同的名称查找效果很好。