Test your skills on our all Hosting services and get 15% off!

Use code at checkout:

Skills
30.10.2024

The Hosts File on macOS

The hosts file on macOS is a system file that maps hostnames (such as website URLs) to IP addresses. It functions as a local DNS system, allowing you to override DNS settings for specific domains. This file is useful for developers, network administrators, or anyone who needs to customize how their Mac resolves hostnames. In this article, we will explain what the hosts file is, where to find it on macOS, and how to modify it.

1. What is the Hosts File?

The hosts file is a plain text file used by the operating system to map human-readable hostnames to IP addresses. It’s an essential component that works like a local DNS resolver, but instead of querying DNS servers, your Mac first checks the hosts file to resolve the IP addresses of websites or servers.

Common uses of the hosts file include:

  • Blocking Websites: You can block access to specific websites by mapping them to a non-existent IP address, such as 0.0.0.0.
  • Local Development: You can set up local domains for testing websites on your machine by mapping them to 127.0.0.1.
  • Bypassing DNS: You can use the hosts file to redirect traffic for specific domains, which is helpful for troubleshooting DNS issues.

2. Location of the Hosts File on macOS

On macOS, the hosts file is located in the /etc/ directory. The full path to the file is:

/etc/hosts

Since it’s a system file, you need administrative privileges to modify it.

3. How to Edit the Hosts File on macOS

Here’s a step-by-step guide to editing the hosts file on macOS.

Step 1: Open Terminal

To edit the hosts file, you need to use the Terminal application. You can find Terminal by searching for it in Spotlight or navigating to Applications > Utilities > Terminal.

Step 2: Open the Hosts File in a Text Editor

Once you have Terminal open, you can use the nano text editor (or any other text editor you prefer) to open the hosts file. Since this is a protected system file, you’ll need to use sudo to gain the necessary privileges.

Run the following command:

sudo nano /etc/hosts

You will be prompted to enter your administrator password.

Step 3: Edit the Hosts File

The hosts file will open in the nano editor, and you will see default entries, such as:

127.0.0.1 localhost 255.255.255.255 broadcasthost ::1 localhost

To add new mappings, simply enter the IP address followed by the hostname. For example, to block example.com, you could add the following line:

0.0.0.0 example.com

Or to redirect a website to a local server, you could add:

127.0.0.1 mylocalwebsite.dev

Each mapping should be on its own line, and you can add multiple hostnames on the same line, separated by spaces.

Step 4: Save the Changes

Once you’ve made the necessary changes, you need to save the file.

  1. Press Control + O to save the file in nano.
  2. Press Enter to confirm the filename.
  3. Press Control + X to exit nano.

Step 5: Flush the DNS Cache

After editing the hosts file, you’ll need to flush the DNS cache to apply the changes immediately. In the Terminal, run the following command:

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

This will clear the DNS cache, forcing your Mac to use the updated hosts file.

4. Common Use Cases for the Hosts File on macOS

4.1 Blocking Websites

The hosts file can be used to block access to specific websites. By mapping the domain to 0.0.0.0, you prevent your browser from accessing the website. For example, to block facebook.com, add the following line:

0.0.0.0 facebook.com

This is a simple and effective way to restrict access to certain websites without relying on external tools.

4.2 Local Development

If you’re developing websites or web applications locally, you can map custom domain names to localhost (IP address 127.0.0.1). For example:

127.0.0.1 myproject.local

This allows you to access your local development site using http://myproject.local instead of http://localhost.

4.3 Testing DNS Changes

When migrating a website or changing DNS settings, you can test how the website will behave on a new server by editing the hosts file. For example, if you want to test how mywebsite.com will load from a new server with the IP 192.168.1.100, add:

192.168.1.100 mywebsite.com

This ensures that when you type mywebsite.com in your browser, it loads from the new server, even though the public DNS hasn’t been updated yet.

5. Restoring the Default Hosts File

If you need to reset the hosts file to its default state, simply remove any custom entries you’ve added and restore the original entries. The default content usually looks like this:

127.0.0.1 localhost 255.255.255.255 broadcasthost ::1 localhost

Save and exit the file using the same steps as outlined above, and then flush the DNS cache to apply the changes.

6. Conclusion

The hosts file on macOS is a powerful tool for managing hostname resolution locally. Whether you’re blocking websites, setting up local development environments, or testing new DNS configurations, knowing how to edit the hosts file can save you time and provide greater control over how your system interacts with the internet. By following the steps in this guide, you can easily modify the hosts file and apply changes as needed on your macOS system.

Test your skills on our all Hosting services and get 15% off!

Use code at checkout:

Skills