In order to do web development on my local machine, I use the /etc/hosts file to define hosts that point back to to which I have Apache serve up via VirtualHosts. This works great, except that now it seems that Lion resets my /etc/hosts file every so often.

Has anyone else experienced this? Is there any way to keep this from happening?

I never had this problem in Snow Leopard.

  • do you have hosts.ac file ? or any other copies of hosts file ? – user570144 Nov 25 '11 at 1:51
  • @user570144 Seems you were right. – Daniel Beck Jan 17 '12 at 20:50
  • Yes. user570144 was right. Sorry I didn't see the comment here. – Jimmy Z Jan 18 '12 at 23:24
  • I do experience this problem in Snow Leopard 10.6.8 – bzx May 18 '12 at 12:34

I just discovered what is resetting my /etc/hosts file. It the Cisco AnyConnect VPN Client. Any time I would connect to my organization's VPN, it was resetting the hosts file to a default. I so rarely connect to the VPN, that it made the problem seem intermittent.

If you use Cisco's AnyConnect VPN Client, please be aware that it will reset your hosts file to the contents of the following: /etc/hosts.ac

To solve the problem, make your hosts changes in both the /etc/hosts and the /etc/hosts.ac file.

I got the hint from MacWorld.

| improve this answer | |
  • 1
    Same experience, but guessing it's from Cisco Unified Personal Communicator (cupcake). SURE HOPE THIS FIXES IT. I don't use the VPN enough to match when this happens to me. Also this only happens when I restart. – doublejosh May 7 '12 at 19:15
  • 1
    Would love to read an explanation from Cisco as to why it does this – matt b Feb 5 '13 at 16:23
  • 1
    This behavior was fixed/changed in AnyConnect v3.0.5080 (or higher), released in Spring 2013. Release Notes - search for hosts.ac. – BrianC May 20 '13 at 18:24

Directory Services (NetInfo in Tiger and earlier) has its own static hosts map, which will be used by the address resolver before /etc/hosts. These can be manipulated through Directory Utility or dscl.

dscl localhost -create /Local/Default/Hosts/www.myhost1.com IPAddress
dscl localhost -create /Local/Default/Hosts/www.myhost2.com IPAddress
dscl localhost -create /Local/Default/Hosts/www.myhost3.com IPAddress
dscl localhost -create /Local/Default/Hosts/www.myhost4.com IPAddress
| improve this answer | |

I haven't seen this behavior on Lion and I have a custom /etc/hosts.

Is the whole file reverting, or the top few lines for common entries like

It might be possible that certain operating system actions re-apply the top few "standard" /etc/host lines, so I might try adding lines, instead of editing those...

Mine looks something like this and has never magically changed:

# Host Database
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##       localhost broadcasthost
::1             localhost
fe80::1%lo0     localhost

# route some web requests locally       www.myhost1.com       www.myhost2.com       www.myhost3.com       www.myhost4.com
| improve this answer | |
  • For some reason, adding additional address lines weren't working back when I was first updating the /etc/hosts after making the migration to a new Lion machine. So, I was adding an entry after the localhost on the top line. It's working now, so I added new lines and I'll watch to see if it resets again. I must have been doing something wrong originally. I'll mark this as resolving my problem after I can verify with a bit more time. Thanks! – Jimmy Z Nov 7 '11 at 21:55
  • I listed the domain mapping below the bottom default localhost, and it was reset this morning. – Jimmy Z Nov 14 '11 at 16:20

I witnessed the same problem as Jimmy Z. Really frustrating, especially since I have numerous custom hosts. It wasn't until the 3rd or 4th occurrence that I realized it was always happening after a reboot.

I finally stumbled upon this blog post which suggested to delete and recreate the hosts file. I followed the suggestions, rebooted and was relieved to find /etc/hosts in the pre-boot state. Here's a recap of what I did.

cat /etc/hosts | pbcopy 
sudo rm /etc/hosts{,.ac}
sudo touch /etc/hosts
sudo su root -c 'pbpaste > /etc/hosts'
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.