OSX Yosemite Bonjour / mDNSResponder problems...
Note: At the time of writing this is only applicable to Developer Preview 1 and 2
If you're trying to reach out from (or back in to) a Mac running OS X 10.10 Yosemite, Developer Preview, you may have found that your Bonjour networked machines aren't resolving.
This is because the mDNSResponder
and mDNSResponderHelper
are disabled (for some reason.) To re-enable them, you need to edit the com.apple.mDNSResponder.plist
. You'll find it located at:
/System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
You'll find a couple of lines near the top:
<key>Disabled</key>
<true/>
Delete those lines, and save.
You'll need to reload and start mDNSResponder
so in the terminal:
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
.local
names should now resolve. (Remember to try just the machine name first, as .local
sometimes doesn't resolve properly.)
To check the service is running, use:
ps aux | grep -i dns
You should see /usr/sbin/mDNSResponder
running, if not, try restarting the service as above.
Written by Jason Milkins
Related protips
24 Responses
after doing this (previews 5, 6 and 7), the permissions for com.apple.mDNSresponder are whacked. The OS is now throwing errors each time a network connection is NOT present:
This computer's local hostname "xxxx.local" is already in use on this network. The name has been changed to "xxxxx-%incrementing_number%.local".
Verifying and repairing permissions with diskutil doesn't resolve the issue. Nor does adding the lines back in. The error is repeatedly thrown until a network connection is obtained.
.local now resolves, but this is a pesky error for sure. Proceed with caution.
With Public Beta 3.0 the com.apple.mDNSResponder.plist
is completely gone, at least for me. Also the /usr/sbin/mDNSResponder
doesn't longer exists. But my Mac still cant resolve .local hostnames. Surprise surprise.
In fact the Airport-Utility is not able to find the local Airport Extreme... even if my Mac is directly connected via WiFi. It's very annoying.
I have the Server 4.0 Beta 14S274J installed, which shows awkward settings if I try to change the hostname in the computer preferences there. Maybe here's a problem?
Looks like com.apple.discoveryd.plist has replaced com.apple.mDNSResponder.plist
I issues the following commands and my iMessages bonjour started to work again. This is under Public Beta 3.0
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.discoveryd.plist
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.discoveryd.plist
That works for me! Thanks!
Anyone else have to periodically restart it?
There is a --no-multicast flag for discoveryd.
Still more to test - but this is what I came up with to disable bonjour on OS X 10.6 to OS X 10.10
https://github.com/MacMiniVault/Mac-Scripts/blob/master/disablebonjour/disablebonjour.sh
I wish there was a more permanent fix. I have to do this everytime I log off and log in into my account.
Thanks for this thread, I upgraded from 10.9 to 10.10 without using betas, and could not, for the life of me, figure out why I couldn't ping any DNS addresses, or reach the web, however my nslookups were working fine.
Unloading discoveryd and reloading immediately got me on the internet. About an hour later though, I lost internet again and had to perform the same step. I hope Apple resolves this!
Adium Bonjour client triggers this issue for me, disabling that account seems to help.
After upgrading to Yosemite 10.10 via the AppStore (no new/clean install), I get a blank page when previewing a website with Codekit 2. In the "Server" tab the Bonjour Hostname in my case "lukas.local" is missing since the upgrade http://goo.gl/QduPqp.
Any ideas how to expose my Bonjour hostname correctly again? Thanks!
Hi Lukas
Have you tried the suggestions in the thread?
Are you having trouble with any of the terminal commands? Let us know what you've tried.
Thanks
We had the same problem in our company. None of the provided "solutions" did work though. We still couldn't ping for example foo.bar.company.local.
What worked in the end was the following: Don't fool around with anything, do not restart discoveryd and do not modify its plist file. Instead just add "company.local" to your search domains (System Preferences / Network / Advanced / DNS). The article at http://support.apple.com/kb/HT3473 lets you believe that things should work out of the box since 10.6 if the hostname to ping has more than 2 "labels" (parts separated by dots). This worked in 10.9 but fails in 10.10. Adding "company.local" to the search domains did the trick for us. Btw: Just adding "local" wasn't enough!
Regards,
Oliver
Hi Oliver, while that will allow you to find machines by host name, its dependent on your router to support it.
Bonjour requires services to be advertised, but if you just want to resolve the host names that's up to you. It's just not what this post is for.
Also note that while OS X 10.10 has issues with Bonjour, some router firmware also had problems with it.
Making sure the mdns / discoveryd service is running on each machine and also checking your router has no known bonjour/apple networking issues is the only way to legitimately solve this problem. (eg. Getting all bonjour advertised services broadcasting)
Also never name hosts with a dot in their name. That's asking for trouble.
Is anybody solve this issue?
Hi digigit - did you try any of the solutions listed?
Surprised if an Apple AirPort is to blame, but check firmware in case an update is available.
Some Asus wifi routers have firmware issues with Bonjour/Zeroconf so it's slways worth checking.
AFAIK the Yosemite issues only extend to services not running / resolving.
Limiting a test to a couple of Ubuntu boxes running avahi daemon would rule out / in your router / firmware.
@ocodo Thanks... Yes I did. As mentioned above, loading/unloading the discoverid
plist only brings brief respite.
Unfortunately you may also be right in your general comment about AirPort. My solution only lasted for about a day. Today all .local boxes are back to nowhere. :-(
My apologies to all those that I sent on a wild chase for ethernet cables. Does anybody know how to delete a posting :-) ?
sudo discoveryutil mdnsactivedirectory yes
Seems to have the desired effect. I am not exactly sure what it does, so use at your own risk. And I will bet it will not survive a reboot, but it looks like a start.
I got it from this thread https://discussions.apple.com/thread/6611817
Do check and revert.
Oliver's solution might not be relevant to this post but THANK YOU, THANK YOU, THANK YOU for posting it. That was exactly the problem I was having and I've tried EVERY other solution from all the page 1 results of 3 different google search variations.
The only other thing that came close to cluing me in was this out of date kb article http://support.apple.com/kb/HT3473.
You saved me from performing a fresh install (and a day of wasted effort).
Sorta relevant: For disabling mDNS announcing on GM Yosemite without breaking anything else (the undocumented --no-multicast
flag for discoveryd
currently breaks WiFi).
Here's a pf approach that works:
10.10.1 doesn't fix discoveryd's --no-mulicast
flag.
I'm having this same issue in 10.10.2
Also, try going to System Preferences>Network and click on the location tab, and create a new location. If it's set to automatic, that's your issue. Yosemite seems to have problems with connecting to networks automatically.
I'm using 10.10.3, but I'm sure it works on 10.10.2 as well. Good luck!