正确的编辑方式是/etc/hosts
什么?我想添加一些IP地址和主机名。它可以工作一段时间(几个小时),然后恢复为原始版本。是否有任何检查状态/etc/hosts
并将其还原的过程?
我正在与Mountain Lion一起攻读MBA。
正确的编辑方式是/etc/hosts
什么?我想添加一些IP地址和主机名。它可以工作一段时间(几个小时),然后恢复为原始版本。是否有任何检查状态/etc/hosts
并将其还原的过程?
我正在与Mountain Lion一起攻读MBA。
Answers:
作为帮助您找到罪魁祸首的工具,这是一个dtrace oneliner,它打印打开文件以供写入的任何进程的pid和名称以及文件名:
dtrace -qn 'syscall::open*:entry /arg1&3/ { printf("%d %s %s\n", pid, execname, copyinstr(arg0)); }'
它需要以root身份运行(例如,使用sudo)。用管道将其插入,grep hosts
以避免淹没输出并丢失您要查找的内容:
sudo dtrace -qn 'syscall::open*:entry /arg1&3/ { printf("%d %s %s\n", pid, execname, copyinstr(arg0)); }' | grep hosts
希望这将告诉您什么进程正在覆盖文件。只要让它在终端窗口中运行直到触发即可。
对我来说,它在文件中
/etc/pulse-hosts.bak
您必须编辑此文件以自定义主机指令
当您要使用Pulse Secure VPN重新连接/连接时,它将合并来自
/etc/pulse-hosts.bak
与Pulse指令中的内容并创建
/etc/hosts
2018更新
使用较新版本的Pulse Secure,您必须首先退出程序(检查活动进程)。
修改您的主机(/ etc / hosts),然后重新启动Pulse Secure。
您是否使用思科的AnyConnect VPN客户端?如果是这样,则需要编辑/etc/hosts.ac,然后将其复制到实时文件中。请参阅此MacOSXHints文章,以及前面的 问题。
编辑:我找不到有关Janos Pulse的任何东西,但是Juniper的Network Connect与/ etc / hosts混在一起,我怀疑Pulse可能会做同样的事情。根据此博客文章,如果您在连接时进行更改,则在断开连接时将还原它们,但是在断开连接时所做的更改将保留下来。
/etc/hosts
必须在断开连接时进行更改,否则您将丢失它们。
进入VPN后,我无法使用quickstart cloudera VM。要解决此问题,我按照以下步骤操作。
步骤1:在中添加条目,/private/etc/hosts
例如
127.0.0.1 quickstart.cloudera
步骤2:输入VPN,例如我正在使用F5 VPN
步骤3:/etc/hosts
使用以下命令验证上述条目
猫/ etc / hosts
我希望它会有用。
/etc/hosts
?
127.0.0.1 quickstart.cloudera
在/etc/hosts
文件中添加了条目,但是当我连接到VPN时,它被擦除/覆盖。要127.0.0.1 quickstart.cloudera
永久添加条目,我在/private/etc/hosts
文件中添加了它。在内部,只要您尝试连接到VPN,它就会将所有条目从复制/private/etc/hosts
到/etc/hosts
。我希望现在有道理。
/etc
是一个符号链接private/etc
,以便/etc/hosts
和/private/etc/hosts
实际上是相同的文件(运行ls -li /etc/hosts /private/etc/hosts
检查)。
/private/etc/hosts
我的问题中添加条目后,问题得到解决,并且连接到VPN之后,我的条目也不会被擦除/覆盖。
更改/ etc / hosts文件时,请确保未连接到VPN(至少在使用Juniper Networks的Network Connect时)。
</speculation>