8

На моем Mac (под управлением ОС 10.6.8) я могу отредактировать файл hosts с помощью sudo vi /etc/hosts , но изменения, которые я делаю, не сохраняются после перезапуска или, возможно, пробуждения из спящего режима.

Есть ли способ, чтобы эти изменения сохранялись?

Вот пример изменения, добавляющий переопределение для 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

Обновление: я также использую программное обеспечение Cisco AnyConnect VPN, и это оказалось ключом. Смотрите ответ Даниэля ниже.

Обновление 2013-05-20: Это поведение было исправлено / изменено Cisco в AnyConnect v3.0.5080 (или выше), выпущенной весной 2013 года. Примечания к выпуску - поиск hosts.ac .

4 ответа4

13

Вы используете программное обеспечение Cisco AnyConnect, которое перезаписывает /private/etc/hosts с помощью /private/etc/hosts.ac . Просто отредактируйте этот файл.

8

У меня была такая же проблема. В моем случае я использую F5 VPN-клиент. Вы не должны редактировать /etc/hosts когда работает VPN-клиент, потому что эти изменения будут стерты, когда вы выключите VPN-клиент. Чтобы сделать ваши изменения постоянными, отредактируйте файл /etc/hosts перед запуском вашего VPN-клиента.

1

Благодаря объяснению @ Danial. Использование сценария-обертки для редактирования хостов, а не для непосредственного редактирования, значительно облегчит вашу боль.

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

У меня также была эта проблема с клиентом Pulse Secure VPN, который создает файл /etc/pulse-hosts.bak, который вы также должны отредактировать. Редактирование /etc /hosts перед запуском Pulse также работает.

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