web-dev-qa-db-ja.com

Mac / etc / hostsへの変更を永続的にするにはどうすればよいですか?

Mac(OS 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

更新:私はCisco AnyConnect VPNソフトウェアも使用しており、それが手掛かりであることがわかりました。以下のダニエルの答えを見てください。

2013-05-20を更新:この動作は、2013年春にリリースされたCiscoのAnyConnect v3.0.5080以降で修正または変更されました。- リリースノート -hosts.acを検索します。

12
BrianC

/private/etc/hosts/private/etc/hosts.acで上書きするCisco AnyConnectソフトウェアを使用しています。代わりにthatファイルを編集してください。

16
Daniel Beck

同じ問題が発生しました。私の場合、F5 VPNクライアントを使用しています。編集しないでください/etc/hosts VPNクライアントの実行中。VPNクライアントをシャットダウンするとこれらの変更は消去されるため。変更を永続的にするには、/etc/hostsファイルをVPNクライアントを起動する前に。

12

@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
fwonce

また、Pulse Secure VPNクライアントにもこの問題があり、編集する必要があるファイル/etc/Pulse-hosts.bakが作成されます。 Pulseを起動する前に/ etc/hostsを編集することもできます。

0
turiyag