How to Flush DNS Cache in Mac OS X
Whether you’re a systems administrator or a web developer, or anything in between, chances are you’ll have to flush your DNS cache every once in a while to get things straightened out server-side, or even just for testing certain configurations.
Flushing your DNS cache in Mac OS X is actually really easy, but there are actually several different commands to use, and you will find the commands are unique to different versions of OS X. We’ve got you covered regardless of what version of Mac OS X you’re running, from OS X 10.10, OS X 10.9, all the way back to 10.4. So find your version of OS X, open your Terminal, and follow the appropriate directions below to get started.
Remember, each of these commands must be entered into the command line, by way of the Terminal applications (found in /Applications/Utilities/ in all version of Mac OS X). Launch that app first and then you can just copy and paste the commands in if you’d like.
Clearing DNS Cache in OS X 10.10 Yosemite
Running the latest version of OS X? Clearing DNS caches in OS X Yosemite has changed again, split into MDNS and UDNS or combined like we’ll use below, here’s the command that is needed:
sudo discoveryutil mdnsflushcache;sudo discoveryutil udnsflushcaches;say flushed
You can read much more about resetting and flushing DNS cache in OS X Yosemite here if you’re interested.
Flush DNS in OS X 10.9 Mavericks
Rere is how to flush the DNS cache in 10.9:
dscacheutil -flushcache;sudo killall -HUP mDNSResponder
You will need to enter the admin password for this task to complete. If you notice, it combines killing mDNSResponder with the standard dscacheutil, making it a two step process to first, flush cache, then reload the DNS handling in OS X so that the changes take effect.
Flushing DNS Cache in OS X Lion (10.7) and OS X Mountain Lion (10.8)
Launch Terminal and enter the following command, you will need to enter an administrative password:
sudo killall -HUP mDNSResponder
Note the dscacheutil still exists in 10.7 and 10.8, but the official method to clear out DNS caches is through killing mDNSResponder. You can also find that process running in Activity Monitor.
One helpful trick if you find yourself flushing the DNS frequently is to setup an alias for that command string in your .bash_profile or in the profile of your shell of choice. A simple bash alias for flushing cache could be this:
alias flushdns='dscacheutil -flushcache;sudo killall -HUP mDNSResponder'
Save that into .bash_profile, then typing “flushdns” would prevent having to use the full command string in the future.
Flush DNS Cache in Mac OS X 10.5, Mac OS X 10.6
Launch Terminal and issue the following command:
All done, your DNS has been flushed. On a side note, the dscacheutil is interesting in general and worth taking a look at, try the -statistics flag instead for some stats.
Flush DNS in Mac OS X 10.4 Tiger, & 10.3
Type the following command in the Terminal:
That’s it, that’s all there is to it. Now your DNS settings should be as you intended them to be, which you can easily verify with various networking tools like http, ping, nslookup, traceroute, curl, or whatever else is appropriate to your specific situation.
If you find something isn’t working and DNS does not appear to have changed, verify the version of OS X you’re running and use the appropriate commands for the latest version. If you’re still having problems after that, try a different machine ideally on a different network (like a cell phone) to verify that it’s not an issue with the remote server.