Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Replace Yosemite's DNS discoveryd with the former mDNSResponder.
#!/bin/bash
if [ ! $(whoami) = 'root' ]; then
echo "This script should be run as root." > /dev/stderr
exit 1
fi
spinner()
{
local pid=$!
local delay=0.75
local spinstr='|/-\'
local text=$1
local count=0
echo -ne "$text "
while [ "$(ps a | awk '{print $1}' | grep $pid)" ]; do
local temp=${spinstr#?}
printf "[%c]" "$spinstr"
local spinstr=$temp${spinstr%"$temp"}
sleep $delay
printf "\b\b\b"
done
echo -ne "\b\b\b\n"
}
case "$1" in
install)
(cp ./mDNSResponder /usr/sbin/ && cp ./mDNSResponderHelper /usr/sbin/ && cp ./com.apple.mDNSResponder.plist /System/Library/LaunchDaemons/ && cp ./com.apple.mDNSResponderHelper.plist /System/Library/LaunchDaemons/) > /dev/null 2>&1 & spinner "copying required files"
(launchctl unload -w /System/Library/LaunchDaemons/com.apple.discoveryd.plist && launchctl unload -w /System/Library/LaunchDaemons/com.apple.discoveryd_helper.plist) > /dev/null 2>&1 & spinner "deactivating discoveryd"
(launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist && launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponderHelper.plist) > /dev/null 2>&1 & spinner "activating mDNSResponder"
echo -e "Please reboot your machine"
;;
remove)
(launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist && launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponderHelper.plist) > /dev/null 2>&1 & spinner "deactivating mDNSResponder"
(launchctl load -w /System/Library/LaunchDaemons/com.apple.discoveryd.plist && launchctl load -w /System/Library/LaunchDaemons/com.apple.discoveryd_helper.plist) > /dev/null 2>&1 & spinner "activating discoveryd"
(rm -rf /usr/sbin/mDNSResponder && rm -rf /usr/sbin/mDNSResponderHelper && rm -rf /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist && rm -rf /System/Library/LaunchDaemons/com.apple.mDNSResponderHelper.plist) > /dev/null 2>&1 & spinner "removing unnecessary files"
echo -e "Please reboot your machine"
;;
*)
echo -e "Usage: mdnsresponder.sh {install|remove}"
exit 1
;;
esac
Usage:
1. Download and unzip the archive from https://copy.com/DKXr6KxqL1LrFkpA into the same directory as the attached shell script
2. chmod +x ./mdnsresponder.sh
3. sudo ./mdnsresponder.sh install
4. reboot your machine
To switch back to discoverd:
1. sudo ./mdnsresponder.sh remove
2. reboot your machine
@rwilhelm

This comment has been minimized.

Copy link

@rwilhelm rwilhelm commented Mar 6, 2015

Thanks!

@pagaille

This comment has been minimized.

Copy link

@pagaille pagaille commented May 4, 2015

Thanks ! I'd have included the sh file into the zip archive. It works insanely well : almost every broken services are back (WOL, WOW, Disappearing shares, duplicate machine names, ...) and even Handoff and Airdrop are much more stable.

@rmm5t

This comment has been minimized.

Copy link

@rmm5t rmm5t commented May 13, 2015

Just for future onlookers concerned about the security around downloading those binaries, here are the MD5 hashes of both that you should verify before running this script. I had these verified from multiple systems running OS X 10.9.

MD5 (mDNSResponder) = f09fd4f1a256ba622356a9fc0579a338
MD5 (mDNSResponderHelper) = 30646c984e812e157a352d24df125033
@jessedobbelaere

This comment has been minimized.

Copy link

@jessedobbelaere jessedobbelaere commented May 15, 2015

Thanks! I had problems with Bonjour services ever since I upgraded to Yosemite.

@mtempels

This comment has been minimized.

Copy link

@mtempels mtempels commented May 28, 2015

Wow! thanks! fixed a lot of strange wifi error after wake-up too! thanks!

@sydcanem

This comment has been minimized.

Copy link

@sydcanem sydcanem commented Jun 26, 2015

Fixed DOTA 2 lag spikes :D

@thedevcyber

This comment has been minimized.

Copy link

@thedevcyber thedevcyber commented Feb 2, 2016

@dlueth if you would be kind enough to update the links. seems broken. Thanks

@cdenneen

This comment has been minimized.

Copy link

@cdenneen cdenneen commented Feb 18, 2016

@dlueth yes link broken to download

@vls1

This comment has been minimized.

Copy link

@vls1 vls1 commented Apr 2, 2016

THANKS A LOT! My internet connection only works on Chrome and not in Safari, Dropbox, Spotify... And you have resolved it!!!!!!!!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment