How to Edit Hosts File in Linux, Windows, or Mac

Introduction

The hosts file in Windows, Mac, or Linux maps hostnames to IP addresses. For example, 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.

In this tutorial, learn how to edit hosts file on Linux, Windows, or Mac.

How to edit hosts file in Linux, Windows or Mac.

Prerequisites

  • A system running Windows, Linux or macOS
  • Administrator privileges

How to Edit 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.

Step 2: Open the Linux Hosts File

To open the Linux hosts file, type the command:

sudo vim /etc/hosts

Instead of Vim, you can use any other text editor, like nano.

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

Step 3: Modify the File

The hosts file in Linux 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.

Linux Hosts file opened in Vim text editor.

Make sure you save the file in Vim before you exit!

Step 4 (Optional): Name Service Switch

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.

nsswitch functionality in Linux indicates DNS lookup order.

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. For the hosts: setting, change the entry so that files is at the beginning of the entry, and dns is at the end.

Note: Check out our tutorial Linux sed Command: How To Use the Stream Editor to learn how to edit lines in a Linux text file without a text editor.

How to Edit Hosts File in Windows

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 Windows Hosts File

  1. In Notepad, click File> Open
  2. Navigate to c:windowssystem32driversetc
  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.
Image of opening the Windows hosts file in Notepad.

Step 3: Edit the File

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.

Image of the Windows hosts file.

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

How to Edit Mac Hosts File

Step 1: Open the Mac 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.

Step 2: Edit Mac Hosts File

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.

MacOS hosts file opened in nano.

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.

Conclusion

Editing the hosts file in Windows, Mac, or Linux operating system is a simple task.

It’s especially handy that the file looks the same, no matter which 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!

Was this article helpful?
YesNo
Goran Jevtic
Goran combines his leadership skills and passion for research, writing, and technology as a Technical Writing Team Lead at phoenixNAP. Working with multiple departments and on various projects, he has developed an extraordinary understanding of cloud and virtualization technology trends and best practices.
Next you should read
Nmap Commands - 17 Basic Commands for Linux Network
May 14, 2019

Nmap stands for Network Mapper. It is an open source tool for network exploration and security auditing. With...
Read more
How to Change Hostname on Ubuntu 18.04
February 27, 2019

Learn The Simple Way How to Change Hostname on Ubuntu 18.04. Multiple options, including using Linux command...
Read more
What is a Domain Name System (DNS) & How Does it Work?
October 22, 2018

Domain Name System (DNS) first emerged in the early 1980s. It represents a system of interconnected servers...
Read more
How to Flush DNS Cache Locally in Windows, macOS, & Linux
January 8, 2019

DNS cache can be corrupted for a number of different reasons, including network attacks or viruses. When that...
Read more