How to enable mDNS on Windows 10 build 17134?

I am looking for a way to resolve .local addresses in Windows 10.

Windows itself also includes mDNS support, but that appears to only be available for Modern API applications.

In the past, the advice has always been to install Apple's Bonjour, for instance How to enable mDNS on Windows (7). Unfortunately, that seems to no longer be working.

As far as I can tell, the problem is that one of Windows' own processes, DNSCache, is now listening on port 5353.

How do I get mDNS to work for non-Modern applications?


I ended up finding the answer minutes after posting my question.

The solution is to first disable mDNS in Windows. This has to be done in the registry. As usual, the standard warning applies: editing the registry is not for the faint of heart, and doing it incorrectly can damage your Windows installation beyond repair.

Navigate to the registry key Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient. If the key does not exist, you may need to create it.

Then add the value EnableMulticast as a REG_DWORD, with the value 0.

Reboot.

Then install Bonjour. After this hack, mDNS works as expected.

Update: In recent versions (tested on Windows 10 10.0.19042), it appears that Windows resolves mDNS for all applications out of the box, without needing a registry hack or Bonjour at all. I tested it on the Pro version, and do not know if it applies to the Home version as well.


According to the Group Policy Home for Windows 10 and Windows Server 2016 documentation you have to Turn off the Link Local Multicast Name Resolution (LLMNR) using the DNSClient::EnableMulticast policy setting.

You can disable the LLMNR if you enable the DNSClient::EnableMulticast policy setting by following these steps:

  1. Press Win + R, type regedit in the Open box, and then click OK.
  2. If prompted by User Account Control, click Yes to open the Registry Editor.
  3. Locate and then click the DNSClient subkey in the registry path: HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\

    1. If the DNSClient subkey does not exits create a new Registry Key by Right-click on Windows NT subkey.
    2. Select New and then Key
    3. Name it as DNSClient.
  4. Right-click on DNSClient subkey.

  5. Select New and then DWORD (32-bit) Value
  6. Name it as EnableMulticast.
  7. Double-click on EnableMulticast to edit the value with 0
  8. Reboot your PC.

If this process is to long create a batch file and run it as administrator:

  1. Create an enable_mdns.bat file using your favorite text editor.
  2. Copy and paste this snippet:
REG ADD "HKLM\Software\Policies\Microsoft\Windows NT\DNSClient" /V "EnableMulticast" /D "0" /T REG_DWORD /F
  1. Save it and Run it as administrator.
  2. If prompted by User Account Control, click Yes to run the .bat file.
  3. Reboot your PC.