22

Чтобы заняться веб-разработкой на моем локальном компьютере, я использую файл /etc/hosts для определения хостов, которые указывают на 127.0.0.1, к которым у меня Apache, обслуживаемый через VirtualHosts. Это прекрасно работает, за исключением того, что теперь кажется, что Lion периодически сбрасывает мой файл /etc /hosts.

Кто-нибудь еще испытывал это? Есть ли способ предотвратить это?

У меня никогда не было этой проблемы в Snow Leopard.

4 ответа4

37

Я только что обнаружил, что сбрасывает мой файл /etc /hosts. Это клиент Cisco AnyConnect VPN. Каждый раз, когда я подключался к VPN своей организации, он сбрасывал файл хостов по умолчанию. Я так редко подключаюсь к VPN, что это делает проблему непостоянной.

Если вы используете Cisco AnyConnect VPN Client, имейте в виду, что он сбросит ваш файл hosts на содержимое следующего: /etc/hosts.ac

Чтобы решить эту проблему, внесите изменения в хосты как в файл /etc/hosts и в файл /etc/hosts.ac .

Я получил подсказку от MacWorld.

2

Службы каталогов (NetInfo в Tiger и более ранних версиях) имеют собственную статическую карту хостов, которая будет использоваться преобразователем адресов перед /etc/hosts . Этим можно манипулировать через Directory Utility или dscl .

dscl localhost -create /Local/Default/Hosts/www.myhost1.com IPAddress 127.0.0.1
dscl localhost -create /Local/Default/Hosts/www.myhost2.com IPAddress 127.0.0.1
dscl localhost -create /Local/Default/Hosts/www.myhost3.com IPAddress 127.0.0.1
dscl localhost -create /Local/Default/Hosts/www.myhost4.com IPAddress 127.0.0.1
1

Я не видел такого поведения на Lion, и у меня есть собственный /etc /hosts.

Весь файл возвращается или несколько верхних строчек для общих записей, таких как 127.0.0.1?

Вполне возможно, что некоторые действия операционной системы повторно применят несколько верхних "стандартных" строк /etc /host, поэтому я мог бы попытаться добавить строки вместо их редактирования ...

Моя выглядит примерно так и никогда не менялась волшебным образом:

##
# 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

# route some web requests locally
127.0.0.1       www.myhost1.com
127.0.0.1       www.myhost2.com
127.0.0.1       www.myhost3.com
127.0.0.1       www.myhost4.com
1

Я был свидетелем той же проблемы, что и Джимми З. Действительно расстраиваюсь, тем более что у меня есть множество пользовательских хостов. Только в 3-м или 4-м случае я понял, что это всегда происходит после перезагрузки.

Я наконец наткнулся на это сообщение в блоге, в котором предлагалось удалить и воссоздать файл hosts. Я последовал совету, перезагрузился и с облегчением обнаружил /etc /hosts в состоянии перед загрузкой. Вот резюме того, что я сделал.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .