如何在 Windows 10 build 17134 上启用 mDNS?

如何在 Windows 10 build 17134 上启用 mDNS?

我正在寻找一种方法来解析 Windows 10 中的 .local 地址。

Windows 本身也包含 mDNS 支持,但似乎仅适用于现代 API 应用程序。

过去,建议总是安装 Apple 的 Bonjour,例如如何在 Windows 上启用 mDNS(7)。不幸的是,这似乎不再起作用了。

据我所知,问题在于 Windows 自己的一个进程 DNSCache 现在正在监听端口 5353。

如何让 mDNS 适用于非现代应用程序?

答案1

我发布问题几分钟后就找到了答案。

解决方案是首先在 Windows 中禁用 mDNS。这必须在注册表中完成。像往常一样,标准警告适用:编辑注册表并不适合胆小的人,并且操作不当可能会损坏您的 Windows 安装,无法修复。

导航到注册表项 Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient。如果该项不存在,则可能需要创建它。

然后将值 EnableMulticast 添加为 REG_DWORD,其值为 0。

重启。

然后安装 Bonjour。经过这一步,mDNS 就可以正常工作了。

更新:在最近的版本中(在 Windows 10 10.0.19042 上测试),Windows 似乎可以立即解析所有应用程序的 mDNS,而无需注册表破解或 Bonjour。我在专业版上测试了它,不知道它是否也适用于家庭版。

答案2

根据Windows 10 和 Windows Server 2016 组策略主页文档你必须关闭链路本地多播名称解析 (LLMNR)使用DNSClient::EnableMulticast策略设置。

如果按照以下步骤启用 DNSClient::EnableMulticast 策略设置,则可以禁用 LLMNR:

  1. Win+ Rregedit输入打开框,然后单击好的

  2. 如果提示用户帐户控制, 点击是的打开注册表编辑器

  3. 找到并单击DNSClient注册表路径中的子项: HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\

  4. 如果DNSClient子项不存在,请通过右键单击Windows NT子项来创建一个新的注册表项。

  5. 选择新的进而钥匙

  6. 将其命名为DNSClient

  7. 右键单击DNSClient子项。

  8. 选择新的进而DWORD(32 位)值

  9. 将其命名为EnableMulticast

  10. 双击EnableMulticast以编辑值0

  11. 重新启动您的电脑。

如果此过程很长,请创建一个批处理文件并以管理员身份运行它:

  1. enable_mdns.bat使用您最喜欢的文本编辑器创建一个文件。
  2. 复制并粘贴此代码片段:
REG ADD "HKLM\Software\Policies\Microsoft\Windows NT\DNSClient" /V "EnableMulticast" /D "0" /T REG_DWORD /F
  1. 保存并以管理员身份运行。
  2. 如果提示用户帐户控制, 点击是的运行该.bat文件。
  3. 重新启动您的电脑。

相关内容