How to edit hosts file and clear cache

In this article we show you the easy way to edit your hosts file on Windows, Mac and Linux. We also go over how to flush your DNS resolver cache.

Please note: that editing the hosts file requires administrator/root privileges.

Most of the guides I have seen on this topic while accurate are also pretty over complicated.


For Windows:

The hosts file is located: C:\Windows\System32\drivers\etc\hosts

To open this file and edit as admin:

Open powershell: The fastest way to open PowerShell is via a Start Menu Search. Just click the Start or Search icon, and then type “powershell” in the search box.

Open Powershell

With powershell open you can then paste the below command via right click and hit enter. This will open notepad as administrator and edit the hosts file all in one go. You will see a UAC prompt due to the administrator privileges needed.

powershell -c start -verb runas notepad.exe 'C:\Windows\System32\drivers\etc\hosts'

To flush dns and then edit the hosts file you can use the second one to save yourself that step later.

ipconfig /flushdns; powershell -c start -verb runas notepad.exe 'C:\Windows\System32\drivers\etc\hosts'

For a visual walk through see the below.

Powershell command pasted.
Powershell flush dns and edit hosts file after
Notepad UAC prompt
Once UAC prompt accepted notepad will load the hosts file for editing.

Once you have made changes you will want to have flushed dns resolver’s so that any cached entries are cleared and the new entries added are used. This is covered in the second command but can be done via the below manually if you still have notepad opened and are editing and saving and need to flush between edits.

ipconfig /flushdns

For Linux:

The hosts file is located at: /etc/hosts

To edit this via a GUI graphical editor in Ubuntu/Debian one of the below commands can be used to open via xed/gedit which are the default graphical editors in Mint Linux and etc.

Linux Mint:

xed admin:///etc/hosts

Ubuntu/Debian:

gedit admin:///etc/hosts

For cases where you may not have those installed the below alternatives will also work and edit via your default terminal editor.

sudoedit /etc/hosts
sudo nano /etc/hosts

To flush your resolver cache in linux see the below. There 3 main resolvers and hence ways to do this based on the local OS resolver setup.

  1. systemd-resolved
  2. dnsmasq
  3. nscd

For clearing systemd-resolver the below can be used.

sudo systemctl is-active systemd-resolved.service && sudo systemd-resolve --flush-caches

For clearing dnsmasq the below can be used.

sudo systemctl is-active dnsmasq.service && sudo systemctl restart dnsmasq.service;

For clearing nscd the below can be used.

sudo systemctl is-active nscd.service && sudo systemctl restart nscd.service ;

If you don’t know which one your’s is using you can also just try the below string which chains all the above and only runs if any one of those services is active it will then restart it to flush it.

sudo systemctl is-active systemd-resolved.service && sudo systemd-resolve --flush-caches; sudo systemctl is-active dnsmasq.service && sudo systemctl restart dnsmasq.service; sudo systemctl is-active nscd.service && sudo systemctl restart nscd.service ;

If your on a legacy system or one without systemd and uses upstart/init you can use something like the below to restart dnsmasq or nscd.

sudo service dnsmasq restart; sudo service nscd restart ; 

For Mac:

The hosts file is located in: /etc/hosts or /private/etc/hosts

You can edit this via one of the below commands:

Newer Macs:

sudo nano /etc/hosts

Older Macs:

sudo nano /private/etc/hosts
Open hosts file in MacOS via terminal.
Editing hosts file via nano in MacOS
Hosts file exists in both paths example.

To flush DNS:

The below command can be used. Please Note: If any one of them errors it is safe to ignore. MacOS depending on the version has different ways to flush the DNS. The beauty of the below command is that is accounts for all of them in one command if the legacy ones fail it doesn’t matter as it will have still flushed the cache no matter which version.

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder ; sudo discoveryutil mdnsflushcache ; sudo discoveryutil udnsflushcaches;
Universal MacOS flush dns resolver cache

Optimize your workflow:

If you find yourself doing lots of development work, migrations, and troubleshooting where you need to quickly edit your hosts file to check a site on old and new server or with and without the CDN/WAF the above steps can be pretty time consuming even with the super simple methods i condensed from being multiple steps into one or 2 commands per OS.

In the Wizard Assistant desktop app this whole process is even more refined where you can initiate the editing and dns flushing from one click inside the apps Tools menu for Windows and Linux. See example below of it in action.

WizardAssistant Windows Hosts file editing

Leave a Comment

Item added to cart.
0 items - $0.00