Introduction

What is a hosts file?

The hosts file in Windows, Mac, or Linux maps hostnames to IP addresses. This could be in an intranet, like a corporate office that has servers for users to access, or it could be domain names for servers on the internet.

Editing your hosts file can be useful if you are running tests on your network. By mapping an IP address to a server name (or domain name), you can skip the process where a web browser uses a Domain Name Server(DNS) lookup to translate the domain name to the IP address.

Editing the hosts file only affects the local operating system.

Prerequisites

  • A computer running Windows, Linux or Mac OS
  • Administrator privileges

Tools/Software

  • A simple text editor
    • Windows Notepad
    • Mac nano
    • Linux Vim

Editing Windows Hosts File

Step 1: Open Notepad as an Administrator

You’ll need administrator privileges for this operation.

  1. Click the Windows button and type “notepad.” Let the search feature find the Notepad application.
  2. Right-click the Notepad app, then click Run as administrator.
  3. Windows User Account Control should pop up asking, “Do you want to allow this app to make changes to your device?” Click Yes.

Step 2: Open the Hosts File

  1. In Notepad, click File> Open
  2. Navigate to c:\windows\system32\drivers\etc
  3. In the lower-right corner, just above the Open button, click the drop-down menu to change the file type to All Files.
  4. Select “hosts” and click Open.

Step 3: Edit the File

One cool thing about the Windows hosts file is that it gives you a brief explanation of how to write a new line. Here’s a brief breakdown:

0.0.0.0 server.domain.com

The first set of four (4) digits is the IP address you’re mapping. This could be the internal IP address of a server on the network, or it could be the IP address of a website.

The second label is the name you want to be able to type in a browser to access the server at the IP address you just specified.

Once you’re finished making your changes, save the file (File > Save) and exit.

If you make an edit to the hosts file and something stops working, you can tell Windows to ignore any line by putting a # sign at the beginning of that line.  It would look like:

# 0.0.0.0 server.domain.com

Editing the Hosts file in macOS

This guide assumes you are running a version of macOS.

Step 1: Open the Terminal

Open the Finder, and go to Applications > Utilities > Terminal

Type the following in the terminal window:

sudo nano /private/etc/hosts

The system should prompt you to enter your password – this is the same password you use to log in to the system.  Type it in, and hit Enter.

NOTE

If you have a favorite text editor, you can substitute it instead of nano.

Step 2: Make Your Edits

Editing the hosts file is fairly straightforward. Like the Windows format above, it’s laid out so that the IP address is first, and the server name comes second. Comments are indicated with a ‘#’ sign. Consider the example below:

0.0.0.0 server.domain.com

Enter the IP address you want to refer to first, hit space, and then the server name (or domain name) that you want to associate with it.

If you make a mistake, you can tell Mac OS to ignore a line by typing a # at the beginning of that line.

Save your changes by pressing Command + O, then exit by pressing Command + X.

Editing Linux Hosts File

Step 1: Open a Terminal Window (Command Line)

Most Linux distributions have an applications > utilities > terminal feature, or an option to right-click the desktop and click Open Terminal.  Use whatever method is appropriate for your flavor of Linux.

Step 2: Open the Hosts file

In the terminal, type:

sudo vim /etc/hosts

If you have another text editor, like nano, you can substitute for Vim.

The system should prompt for your password – enter it, and the Hosts file should open.

Step 3: Make Your Edits

If you have been reading from the beginning, then you might have guessed that the hosts file in Linux operates by the same rules as in Windows and Mac OS.  And you’d be correct!

The hosts file is formatted so that the IP address is first, and the server name is second.

0.0.0.0 server.domain.com

Add any entries you wish to the end of the file.  If you make a mistake or need to tell your operating system to ignore a line, add the ‘#’ sign at the beginning of that line.

Make sure you save the file before you exit!

Step 4 (Optional): Name Service Switch

At the beginning of this guide, we mentioned that the hosts file bypasses the standard Domain Name Server lookup.  In Linux, there’s another file that tells the operating system what order to look for the IP address translations.

The file is nsswitch.conf, and if it’s configured to look at DNS first, then it’ll skip your hosts file and go straight to DNS lookup.

To check the configuration, in your terminal window type:

cat /etc/nsswitch.conf

The terminal will return a list of information.  About halfway down, there should be an entry labeled “hosts”.  Make sure that the right-hand column lists “files” first. If for some reason DNS is listed first, open the file in your text editor:

sudo vim /etc/nsswitch.conf

It should open the nsswitch.conf file. Under the hosts:setting, change the entry so that files is at the beginning of the entry, and dns is at the end.

Conclusion

Editing the hosts file is a simple task. It’s especially handy that the file looks the same, no matter which Windows, Mac, or Linux operating system you’re running!

Just make sure you know the IP address of the server you want to connect to, and then specify the name you want to type into a browser, and you’ll be on your way!