我的家庭网络上有一些 Linux 服务器,可以通过“hostname.local”访问,但是在使用 Windows 机器时,除非我通过 IP 地址访问,否则它们似乎无法解决此问题。
如何使我的 Windows 机器可以解析 hostname.local 地址?我知道如何编辑,C:\Windows\System32\drivers\etc\hosts但肯定有一些自动方式让 Windows 找到这些机器?
use*_*686 32
通常.local使用 mDNS 解析名称——Linux 服务器可能运行 Avahi,OS X 内置了它,而对于 Windows,则有 Apple 自己的 Bonjour。
2020 年 12 月 14 日:针对 Windows 10 内置 mDNS 支持进行了更新。
视窗10可以处理hostname和hostname.local相同:它同时尝试LLMNR对于裸露的主机名,NetBIOS进行裸主机名,和用于hostname.local(任选地)的mDNS。这种 mDNS 支持不再局限于“现代”应用程序。
要激活 mDNS 支持,请将EnableMulticast注册表值设置为 1:
reg add "HKLM\Software\Policies\Microsoft\Windows NT\DNSClient" /v EnableMulticast /t REG_DWORD /d 1 /f
Run Code Online (Sandbox Code Playgroud)
Bonjour 打印服务中包含旧版本的 Bonjour (v2.0) 。它也可作为巧克力包装提供。
最新版本 (v3.x) 不能作为独立下载提供,而是作为 iTunes(和一些其他应用程序)的一部分安装。可以使用存档管理器(如 7-Zip 或 WinRAR)Bonjour64.msi从 iTunes 安装程序中提取。
小智 7
正如@Kevin Keane 在这里(以及上面的评论部分)指出的那样,Windows 10 现在使用仅适用于现代 Windows 应用程序的服务来破坏 mDNS 端口 5353。因此,要让 Bonjour 回到端口,必须通过上述链接中描述的注册表编辑取消 Windows mDNS 服务。
在 Windows 10 版本而不是 Home 而不是注册表编辑中,可以使用组策略编辑器:
我不必重新启动。
警告,我已经安装了 iTunes 和 Bonjour 打印服务。简单地卸载 Bonjour 打印服务并重新安装不起作用——我必须进入添加-删除程序,卸载 Bonjour 和 Bonjour 打印服务,然后重新安装 Bonjour 打印服务,然后 ping .local 地址再次开始工作(仅限虚拟机主机)运行 avahi-daemon 的 linux 来宾)。我认为这是因为我的“Bonjour 服务”服务绑定到 Bonjour,而不是 Bonjour 打印服务,并且它没有重新注册自己。