Как сделать изменения в Mac / etc / hosts постоянными?


13

На моем 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.



1
@ user606723 /etcявляется символической ссылкой на /private/etc.
Даниэль Бек

Брайан, вы используете программное обеспечение Cisco VPN? У вас есть файл /etc/hosts.ac?
Даниэль Бек

Бинго! Я сталкиваюсь с использованием Cisco AnyConnect VPN. Я обновил файл /etc/hosts.ac, и теперь он сохраняет изменения. Пожалуйста, поставьте это как ответ, и я приму это.
BrianC

Ответы:


16

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


14

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


Для меня как F5 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"

1

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


1
Что хорошего в редактировании файла резервной копии ?
Скотт

никогда бы не догадалась - сработало для меня!
Рики Леви

0

Большая часть VPN-клиента создает файл резервной копии / etc / host при запуске VPN.

Чтобы сохранить ваши изменения навсегда, просто измените файл хоста без подключения VPN.

Как только вы запустите VPN, файл резервной копии будет создан с вашими изменениями, и любой VPN-клиент, переопределяющий файл хоста, все равно будет сохранять ваши изменения.

Общее имя файла резервной копии по клиенту:

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

Похоже, это в основном более подробный вариант принятого ответа - и вы написали с ошибкой «Любой».
G-Man говорит: «Восстанови Монику»

Спасибо ... Принятый ответ предлагает WAR для обновления файла резервной копии. Этот ответ заключается в обновлении файла хоста, когда VPN отключена. Это решение будет работать для любого VPN-клиента
xxnations
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.