17

On my Mac (running OS 10.6.8), I can edit my hosts file with sudo vi /etc/hosts, but changes I make don't seem to persist through restarts or possibly awaking from sleep mode.

Is there a way to make these changes persist?

Here's a sample change adding an override for www.example.com:

$ cat /etc/hosts
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost 
fe80::1%lo0 localhost

1.2.3.4 www.example.com

Update: I am also using Cisco AnyConnect VPN software, and that turned out to be the clue. See Daniel's answer below.

Update 2013-05-20: This behavior was fixed/changed by Cisco in AnyConnect v3.0.5080 (or higher), released in Spring 2013. Release Notes - search for hosts.ac.

BrianC
  • 273

5 Answers5

21

I've had the same issue. In my case I'm using F5 VPN client. You shouldn't edit /etc/hosts while VPN client is running, because these changes will be erased when you shut down the VPN client. To make your changes permanent, edit /etc/hosts file before you start your VPN client.

Muhd
  • 125
  • 1
  • 8
17

You are using Cisco AnyConnect software, which will overwrite /private/etc/hosts with /private/etc/hosts.ac. Just edit that file instead.

Daniel Beck
  • 111,893
4

I also had this problem with the Pulse Secure VPN client, which makes a file /etc/pulse-hosts.bak that you should edit too. Editing /etc/hosts before launching Pulse also works.

turiyag
  • 141
1

Thanks to @Danial's explanation. Using a wrapper script to edit hosts rather than edit it directly would ease your pain a lot.

#!/bin/sh
ORIG=/etc/hosts
SUCKER=/etc/hosts.ac
sudo vim $ORIG
pid=$!
wait $pid
sudo cp $ORIG $SUCKER
echo "$ORIG copied to $SUCKER"
fwonce
  • 175
0

Most of the VPN client creates a backup file of the /etc/host when you start the VPN.

To keep your changes permanently, simply change the host file without a VPN connection.

Once you start the VPN, the backup file will be created with your changes in, and any VPN client overriding the host file would still keep your changes in.

Common backup file name by client:

  • Pulse Secure Client - pulse-hosts.bak
  • Cisco Any Connect - hosts.ac
xxnations
  • 101