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

Kev*_*ane 21 bonjour mdns windows-10 windows-10-v1803

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

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

过去,建议一直是安装 Apple 的 Bonjour,例如How to enable mDNS on Windows (7)。不幸的是,这似乎不再起作用。

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

如何让 mDNS 为非现代应用程序工作?

Kev*_*ane 16

在发布我的问题几分钟后,我最终找到了答案。

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

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

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

重启。

然后安装卓悦。在这次黑客攻击之后,mDNS 按预期工作。

更新:在最近的版本中(在 Windows 10 10.0.19042 上测试),似乎 Windows 可以为所有应用程序开箱即用地解析 mDNS,根本不需要注册表黑客或 Bonjour。我在Pro版上测试过,不知道Home版是否也适用。


Teo*_*cci 6

根据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\

    1. 如果DNSClient子项不存在,则通过右键单击Windows NT子项创建一个新的注册表项。
    2. 选择新建,然后
    3. 将其命名为DNSClient.
  4. 右键单击DNSClient子项。

  5. 选择新建,然后选择DWORD(32 位)值
  6. 将其命名为EnableMulticast.
  7. 双击EnableMulticast以编辑值0
  8. 重新启动您的 PC。

如果此过程要长时间创建批处理文件并以管理员身份运行:

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