如何永久更改Mac / etc / hosts?


13

在我的Mac(运行OS 10.6.8的Mac)上,我可以使用来编辑我的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在2013年春季发布的AnyConnect v3.0.5080(或更高版本)中修复/更改。发行说明 -搜索hosts.ac



1
@ user606723 /etc是指向的符号链接/private/etc
丹尼尔·贝克

Brian,您在使用Cisco VPN软件吗?你有文件/etc/hosts.ac吗?
丹尼尔·贝克

答对了!我面对使用Cisco AnyConnect VPN的问题。我更新了/etc/hosts.ac文件,它现在可以保留更改。请将此作为答案,我会接受。
BrianC 2012年

Answers:


16

您正在使用思科的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,您也应该对其进行编辑。在启动Pulse之前编辑/ etc / hosts也可以。


1
编辑备份文件有什么用?
斯科特,

永远都不会猜到-对我有用!
Ricky Levi

0

启动VPN时,大多数VPN客户端都会创建/ etc / host的备份文件。

要永久保留您的更改,只需在没有VPN连接的情况下更改主机文件。

一旦启动VPN,备份文件将随您的更改创建,并且任何覆盖主机文件的VPN客户端仍将保留您的更改。

客户端通用备份文件名:

  • Pulse安全客户端-pulse-hosts.bak
  • 思科Any Connect-hosts.ac

这似乎是所接受答案的更详细的版本-您拼写错误的“任何”。
G-Man说“恢复莫妮卡”

谢谢...可接受的答案是建议通过WAR更新备份文件。此答案是在VPN断开连接时更新主机文件。该解决方案适用于任何VPN客户端的工作
xxnations
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.