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.