如何在 Windows 中解析 .local 地址?

如何在 Windows 中解析 .local 地址?

我的家庭网络上有一些 Linux 服务器,我可以通过“hostname.local”访问它们,但是当使用 Windows 机器时,除非我通过 IP 地址访问,否则它们似乎无法解决这个问题。

我该如何让我的 Windows 机器能够解析 hostname.local 地址?我知道如何编辑,C:\Windows\System32\drivers\etc\hosts但肯定有某种自动方法可以让 Windows 找到这些机器?

答案1

通常.local使用 mDNS 来解析名称 - Linux 服务器可能运行 Avahi,OS X 已内置该功能,而 Windows 则有 Apple 自己的 Bonjour。

2020-12-14:更新了 Windows 10 内置 mDNS 支持。

Windows 10(版本 1511 或更高版本)

Windows 10hostnamehostname.local相同的方式处理这两种情况:它会同时尝试使用 LLMNR 来获取裸主机名,使用 NetBIOS 来获取裸主机名,(可选)hostname.local 的 mDNS。此 mDNS 支持不是不再局限于‘现代’应用程序。

当前的版本(大约 10.21xx 或更高版本),我相信 mDNS 主机名查找支持应该默认处于活动状态。

最初,在旧版本(10.1511 或更高版本)中,必须通过将EnableMulticast注册表值设置为 1 来手动激活 mDNS 支持:

reg add "HKLM\Software\Policies\Microsoft\Windows NT\DNSClient" /v EnableMulticast /t REG_DWORD /d 1 /f

Windows XP—8.x

旧版本的 Bonjour (v2.0) 包含在Bonjour 打印服务. 它还可以作为巧克力包装

最新版本(v3.x)不可单独下载,但可作为 iTunes 的一部分进行安装(并且其他一些应用程序)。可以使用存档管理器(如 7-Zip 或 WinRAR)Bonjour64.msi从 iTunes 安装程序中提取。

答案2

正如@Kevin Keane 指出的那样这里(以及上面的评论部分),Windows 10 现在使用仅适用于现代 Windows 应用程序的服务来破坏 mDNS 端口 5353。因此,要让 Bonjour 重新连接到端口,必须通过上面链接中描述的注册表编辑来取消 Windows mDNS 服务。

在 Windows 10 家庭版以外的版本中,除了编辑注册表之外,还可以使用组策略编辑器:

  • 启动 gpedit.msc
  • 导航计算机配置>管理模板>网络>DNS 客户端
  • 启用“关闭多播名称解析”策略。

我不需要重新启动。

需要注意的是,我已经安装了 iTunes 和 Bonjour 打印服务。简单地卸载 Bonjour 打印服务并重新安装是行不通的——我必须进入添加/删除程序,卸载 Bonjour 和 Bonjour 打印服务,然后重新安装 Bonjour 打印服务,然后 ping .local 地址才能再次开始工作(运行 avahi-daemon 的 virtualbox 仅主机 Linux 客户机)。我认为这是因为我的“Bonjour Service”服务与 Bonjour 绑定,而不是 Bonjour 打印服务,并且它没有重新注册自己。

答案3

安装 bonjour

@deargle 和 @user1686 的回答很好,但是我发现修改注册表是不必要的(Windows 10.0.19041.1415)

下载并安装苹果的 Bonjour 套餐激活 mDNS。无需更改注册表或重新启动

笔记:如果您安装了 iTunes 或 Skype,您可能已经有 bonjour。

相关内容