如何使 Mac /etc/hosts 的更改永久生效?

如何使 Mac /etc/hosts 的更改永久生效?

在我的 Mac(运行 OS 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 软件,而这恰恰是线索。请参阅下面 Daniel 的回答。

更新2013-05-20:思科在 2013 年春季发布的 AnyConnect v3.0.5080(或更高版本)中修复/更改了此行为。发行说明- 搜索hosts.ac

答案1

您正在使用 Cisco AnyConnect 软件,它将用 覆盖/private/etc/hosts/private/etc/hosts.ac只需编辑文件。

答案2

我遇到过同样的问题。我使用的是 F5 VPN 客户端。您不应该/etc/hosts在 VPN 客户端运行时进行编辑,因为关闭 VPN 客户端时这些更改将被删除。要使更改永久生效,请/etc/hosts在启动 VPN 客户端之前编辑文件。

答案3

我在使用 Pulse Secure VPN 客户端时也遇到了这个问题,它会生成一个文件 /etc/pulse-hosts.bak,你也应该编辑它。在启动 Pulse 之前编辑 /etc/hosts 也可以。

答案4

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

要永久保存您的更改,只需更改主机文件即可,无需 VPN 连接。

一旦启动 VPN,就会创建包含您所做的更改的备份文件,并且任何覆盖主机文件的 VPN 客户端仍会保留您的更改。

客户端常用的备份文件名:

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

相关内容