Як зробити зміни в Mac / etc / hosts постійними?


13

На моєму Mac (під управлінням ОС 10.6.8) я можу редагувати свій файл хостів за допомогою 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

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

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



1
@ user606723 /etc- символічне посилання на /private/etc.
Даніель Бек

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

Бінго! Я стикаюся з використанням VPN Cisco AnyConnect. Я оновив /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
Що корисного для редагування резервного файлу?
Скотт

Ніколи б не здогадався, що - працював на мене!
Рікі Леві

В основному, потік іде так, коли Pulse відкриває своє з'єднання, він іде: cp /etc/hosts /etc/pulse-hosts.bakтоді він додає всі потрібні зміни, щоб встановити з'єднання Pulse. Потім, коли все буде зроблено, воно продовжується: mv /etc/pulse-hosts.bak /etc/hostsтож будь-які зміни, які ви внесете в / etc / hosts, буде видалено, якщо Pulse був увімкнений під час внесення змін.
туріяг

0

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

Щоб зберегти зміни назавжди, просто змініть файл хоста без з'єднання VPN.

Після запуску VPN файл із резервними копіями буде створений із внесеними вами змінами, і будь-який клієнт VPN, який переосмислить хост-файл, все одно збереже ваші зміни.

Загальне ім'я файлу резервного копіювання за клієнтом:

  • Імпульсний безпечний клієнт - pulse-hosts.bak
  • Cisco Any Connect - hosts.ac

Це, здається, є більш детальною версією прийнятої відповіді - і ви неправильно написали "Будь-який".
G-Man каже "Відновити Моніку"

Дякую ... Прийнята відповідь пропонує ВАЙНУ оновити файл резервної копії. Ця відповідь полягає в тому, щоб оновити хост-файл під час відключення VPN. Це рішення працюватиме для будь-якого клієнта VPN
xxnations
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.