Based on my own experience and what I encountered while Googling, here are some things to try:
1. Did you check that it works correctly?
Changes to hosts should take effect immediately, but Windows caches name resolution data so for some time the old records may be used. Open a command line (Windows+R, cmd, Enter) and type:
ipconfig /flushdns
To drop the old data. To check if it works, use (assuming you have an ipv4 entry in your hosts for www.example.com, or an ipv6 entry in your hosts for ipv6.example.com):
ping www.example.com -n 1
ping -6 ipv6.example.com -n 1
And see if it uses the correct IP. If yes, your hosts file is fine and the problem is elsewhere.
Also, you can reset the NetBios cache with (open the console as an admin or it will fail):
nbtstat -R
You can check the current data in the DNS cache with:
ipconfig /displaydns | more
2. Basics
- Is your hosts file named correctly? It should be
hostsand nothost, etc. - Is the extension correct? It should have no extension (
hostsnothosts.txt) – be careful if you have configured windows to hide known extensions, check the properties to be sure: The correct hosts file’s type will show up as just “File”. - Did you follow the correct syntax? Did you accidentally prefix lines with a hash (
#) which indicates comments? - Did you take care of all variants (
www.example.comandexample.com– safest to just add both)?
3. Whitespace
The format for each line is IP address, then a horizontal tab (escape code \t, ASCII HT, hex 0x09) or a single space (hex 0x20), then the host name, ie. www.example.com, then finally a carriage return followed by a line feed, (escape codes \r\n, ASCII CRLF, hex 0x0d 0x0a).
Sample entries, using Unicode control pictures to indicate control characters. (Don’t copy and paste these into your hosts file!)
192.0.2.1␉www.example.com␍␊
2001:db8:8:4::2␉ipv6.example.com␍␊
The individual bytes may be viewed in Notepad++ with the hex editor plugin. Notepad++ will also show special characters (View -> Show Symbol) so you can easily inspect the number and kind of whitespace characters.
If you copied and pasted hosts entries from somewhere, you may end up with multiple spaces. In theory hosts supports multiple spaces separating the two columns, but it’s another thing to try if nothing else works.
To be on the safe side, make sure all lines in your hosts file either use tabs or spaces, not both.
Lastly, terminate the file with a blank line.
4. Registry Key
There is a registry key specifying the location of the hosts file. Supposedly, Windows doesn’t actually support putting the hosts file in other locations, but you might want to check. The key is:
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath
The entry should be:
%SystemRoot%\System32\drivers\etc
5. Permissions
Sometimes there are issues with permissions on the file, the file attributes, and similar things. To recreate the file with default permissions:
- Create a new text file on your desktop.
- Copy and paste the contents of your current hosts file into this file in Notepad.
- Save the new text file and rename it to
hosts. - Copy (do not move) the file to your
%SystemRoot%\System32\drivers\etcdirectory, and overwrite the old file.
Last point is important: Copying works, moving doesn’t.
The local Users account must be able to read the hosts file. To make sure (in Windows 7):
- Navigate to
%SystemRoot%\System32\drivers\etcin Windows Explorer. - If you can’t see the
hostsfile, ensure you can see hidden and system files. - Right-click on the
hostsfile and selectPropertiesfrom the context menu. - In the
hosts Propertieswindow, click on theSecuritytab. - Examine the list of names in the
Group or user names:box. If%COMPUTERNAME%\Usersis present, click on it to view permissions. - If
Usersis not present, or is present but does not haveReadpermission, clickEdit.... - If
Usersis not present, clickAdd..., typeUsers, clickCheck Names, and click OK or press Enter. - Select
Users, and ensureRead & executeis checked in theAllowcolumn. Click OK. If aWindows Securityalert box pops up, chooseYesto continue. - Click OK to close the
hosts Propertieswindow. - Go up to section 1 of this answer and follow the directions to check if it’s working now.
6. Encoding
The hosts file should encoded in ANSI or UTF-8 without BOM. You can do this with File -> Save As.
7. Proxies
If you have a proxy configured, it may bypass the hosts file. The solution is to not use the proxy, or configure it to not do this.
To check, go to your Internet Explorer -> Internet Options -> Connections -> LAN settings. If everything is blank and “Automatically detect settings” is checked, you aren’t using a proxy.
8. DNS address
(This may also resolve proxy issues.)
Go to your network connections properties, then TCP/IP settings, and change the first DNS server to 127.0.0.1 (localhost). The second should probably be your actual DNS’s IP.
This is not necessary for the hosts file to work, but it may help in your case if something is configured strangely.


hostsfile is used, and changing it to 127.0.0.1 is effectively an error, unless you’re actually running a DNS server on your computer.– Massimo Sep 24 ’14 at 21:19hostsfile with that method. I didn’t investigate to see if the DNS address was definitely the problem – but I decided to leave that step in with a note. Feel free to edit the question if you like. – Superbest Sep 24 ’14 at 22:56