How to open and edit the hosts file on Mac computers?
All Mac computers store a small, text based file called 'hosts'. Modifying this file is sometimes necessary to solve connection problems, set your own web server, and instruct the system to block access to specific websites (thus to prevent opening malicious websites). There are many reasons why you might need modify this particular file, however, access to it is not generally via the desktop folder. The most common way to make changes to the host file is using the Terminal application. This works on all Mac operating system versions, although the path sometimes varies.
In the new version of macOS, you can also modify the hosts file via Finder and the text editor. Making changes to the hosts file may seem daunting but with a proper guidance it is straightforward and useful to perform certain operations. Despite this, in some cases users are unable to differentiate between the DNS server and hosts file. To clarify, we will describe the differences and provide methods to modify the hosts file depending on your Mac operating system version.
Table of Contents:
It is recommended to run a free scan with Malwarebytes - a tool to detect malware and fix computer errors. You will need to purchase the full version to remove infections and eliminate computer errors. Free trial available.
Since the file is locked, you are blocked from making any changes. So, if you ever want to edit hosts file on Mac, here is how to do it. Edit Hosts File On Mac OS X. Though editing hosts file on Mac OS X is a bit tricky, it is still easy. To start off, search for the terminal in Launchpad or Spotlight and open it. Once the terminal has been. The Hosts file contains the mappings of IP addresses to host names. This file is loaded into memory (cache) at startup, then Windows checks the Hosts file before it queries any DNS servers, which enables it to override addresses in the DNS. This prevents access to the listed sites by redirecting any connection attempts back to the local machine. The Mac hosts file is an important text document on Mac OS X that allows the mapping of hostnames to specified IP address. Even though the Internet has both public and private DNS servers for mapping of IP address, the hosts file on Mac is a good way to override DNS servers. The hosts file is used by your computer to lookup/resolve domain names to an IP address. This file can be used to force your computer to resolve your website to a specific IP address rather than resolving your website using the DNS found in the name servers the domain is pointed to.
What is the difference between DNS and hosts file?
Firstly, we will clarify the difference between Domain Name System (DNS) server and the hosts file. Inexperienced computer users commonly mistake the DNS server and hosts file to be the same. Therefore, modifications made to the hosts file that should be applied to the DNS server (and vice versa) lead to problems.
A DNS server is a database that responds to websites URL addresses expressed in more meaningful characters. These servers finds the correct IP address assigned to the particular URL address and allow you to access the desired website. They also create a hidden cache file where this information is stored, thus increasing loading speed when you try to access a website that you have previously visited.
The hosts file is one of the easiest ways to modify or deny DNS server entries. It can be useful to test a web server under development, so that you can access it through a URL address, rather than its IP address. Within the hosts file, you can associate a particular IP address and Domain name (i.e. URL address). The Mac will open the IP address assigned to a particular URL address within the hosts file, ignoring the DNS server results. This is also an effective way to block unwanted websites. For example, if you are setting-up a new company computer and wish to prevent employees from accessing unnecessary websites (such as Facebook, Twitter, etc.), you simply assign invalid or other preferred addresses to these website URL addresses. As a further example, you can assign the invalid IP address 0.0.0.0 and URL www.facebook.com within the Mac host file - the computer will attempt to connect to the invalid IP addresses when the Facebook URL is entered. You can also assign your company homepage IP address, rather than an invalid IP. More detailed information about how to prevent Mac from accessing unwanted websites can be found in this article.
If you do not know the full IP address of a specific website, you can use Terminal and the command ping. Launch terminal via Spotlight, press the keyboard shortcut of Command and Spacebar, and type in Terminal. Type in the ping command with the URL address and press return. Within the results, you will find the website IP address. The example of the ping command listed below is: ping www.pcrisk.com
Modify hosts file via Finder
On modern versions of the Mac operating system, the hosts file might be accessible and modified in two separate ways. First, via Finder - by moving the file to your desktop or another unprotected are. Second, via the Terminal application. We begin with hosts file editing via Finder. Launch finder and click the Go option in the menu bar at top of your screen. Then select Go to Folder and type the following path and click Go:
- /private/etc/hosts
By default, the 'etc' folder is protected against modification. Therefore, copy the hosts file to an unprotected location, for example, the desktop. There you will be able to modify the copy of the hosts file. Simply double click on the file to open it via the TextEdit application (or any other application able to open and modify text-based files).
At the top of the opened file, you will find comments (denoted by the hash [#] symbol). Anything placed on the same line that starts with this symbol is ignored by the system. In this way, comments and descriptions can be added to the file. Below the comment lines are the default IP addresses for localhost and broadcasthost. There might be other data, which is added by various applications. Enter your additional information below all existing entries. A common reason to modify the hosts file might be to block an unwanted websites from loading on your computer. Once you have finished editing, you must replace the original hosts file with this newly created version. Therefore, repeat the above procedure and go to the 'etc' folder.
Click the Go option in the menu bar at the top of the screen, select Go to Folder and type in the following path: /private/etc/hosts Click Go. Move the modified file to replace the old one. The operating system will ask you to authenticate to make changes within the protected folder. Click authenticate. You will now be asked to choose the action you wish to perform. Click Replace. Finally, you must enter the administrators account password to confirm your action. If you have blocked websites that already have been visited by this computer, you will need to flush DNS cache - detailed information can be found in this article.
Modify hosts file using Terminal
Modifying the hosts file via Terminal can save time spent moving the hosts file in and out of the protected 'etc' folder. In this case, however, you must work with the keyboard, rather than mouse or touchpad/trackpad. Using Terminal saves time spent moving the hosts file because you will be editing the original hosts file with super user permissions. Therefore, you are advised to create a backup of the hosts file, especially if you do not have experience of these techniques. Launch Terminal using Spotlight. Press the keyboard shortcut of Command and Spacebar. Type in Terminal and press Return. Alternatively, visit the Utilities folder under Applications via Finder to launch this built-in command line application.
Once Terminal is launched, type following command and press Return:
- sudo cp /private/etc/hosts ~/Documents/hosts-backup
To restore the hosts file, use the following command and press Return to execute:
- sudo cp ~/Documents/hosts-backup /private/etc/hosts
Type the following command to access the hosts file by using a Unix text editor called nano. Press Return to execute the command. You will be asked to enter the administrators password to confirm access to super user permissions.
- sudo nano /private/etc/hosts
Bear in mind that Terminal will not display any characters when you are entering the password. Simply type the password and press Return. The Terminal window will change. At the top, you will see the path of the hosts file, content, and control commands at the bottom of window. To navigate while using nano, use your keyboard arrow keys. Leave all existing information unchanged and type your additional data below (adding your data before the existing information could result in the application failing).
Enter your data, each on a new line. Once you have finished editing the hosts file, press the keyboard shortcut of Control and O and then press Return to save changes within the existing file. Then press the shortcut of Control and X to exit the nano editor. For the changes to take effect, you will need to flush the DNS cache - detailed instructions can be found in this article.
Video Showing how to modify hosts file on Mac
How to edit your Mac hosts file (Mac OS X)
Sometimes you need to view a site on a development server. It’s something that I use regularly to connect to a development server using the regular site domain but mapped to a development server’s IP address. This way you can maintain your DNS as it is, and work with the development site’s future domain in a real and meaningful way. Some CMS and applications work best this way when you’re doing active development, and you’re not ready to adjust your domain’s zone file quite yet.
It’s a pretty straight forward and easy process, but a word of caution: if you’re not familiar working with the command line, proceed with caution. You can screw stuff up in a quick hurry if you’re not careful!
Start Terminal on Your Mac
In order to change your hosts file on Mac OS X, you need to use the Terminal app. You can find it by going in to your LaunchPad and starting to type “terminal” and hit enter to launch it, or going to your applications folder, and then to your utilities folder, and it will be in there too.
Open Your Hosts File
Once you get terminal started you will want to run the following command:
This will open up your hosts file in Terminal allowing you to make edits. Make sure you include the first slash before private to get you to the right directory.
Enter Your Password
Next, Terminal is going to ask you for your Mac password, so go ahead and enter that next. As you’re typing your password the cursor will not move, so hopefully you know your way around your keyboard. You can also copy and paste your password in.
Once you enter your password, you’ll now be in the edit screen for your hosts file.
Make Your Entry in Your Hosts File
Hosts File Macbook Locked
The lines that start with # are “commented out” so that they’re not read by the system, but allow you to read any important info that the creator of the file wants you to know about. Learning how to comment things is a big help when you’re working with code, and if you need to toggle back and forth between a live site, and one that’s on a remote server, you can simply comment out the line that routes that domain to the development server, in order to get back to the original site.
It should look a little like this:
Use your arrows to scroll down to an empty line below the ones that are already there by default. Once you’re on a new line, add your new entry by adding the IP address of the server you want to point your domain to, then followed by your domain name. You may want to include both yournewdomainentry.com and www.yournewdomainentry.com. That way it won’t matter whether you include the www or not when trying to get to your new destination that you’re mapping – both the regular domain and the www domain will both resolve to the same place.
Save The Hosts File
Hosts File Mac Terminal
Once you’ve made your adjustments by adding a new line to the hosts file you’ll need to save it so hit control+o to save the file. The system will prompt you if you want to write to the same file. Since you’re writing to the same place, just hit enter to save it as the existing file. Next to complete the edit and get out of the hosts file, hit control+x to exit and that will bring you back to your main command prompt.
Make note: it’s control not command.
Flush Your DNS Cache
You should now be good to go. If for some reason your new site mapping isn’t working correctly you may want to flush DNS cache and you can do that while you’re still in Terminal.
Once you’ve got everything done, go ahead and check your hosts file edits. Your new mapping should be in place! Once you’re done and you’ve pushed your site live, make sure to remove your domain mapping, either by commenting it out, or just completely removing it, so that it resolves naturally. You don’t want to be stuck looking at your development server while the rest of the world is looking at the live version.