題:
/ etc / hosts被改寫
Mohammad Moghimi
2013-07-18 23:33:59 UTC
view on stackexchange narkive permalink

編輯 / etc / hosts 的正確方法是什麼?我想添加一些IP地址和主機名。它可以工作一段時間(幾個小時),然後恢復為原始版本。是否有任何過程可以檢查 / etc / hosts 的狀態並將其還原?

我正在與Mountain Lion一起攻讀MBA。

FWIW,這不會發生在我身上。我在/ etc / hosts中有一個我的專用網絡中的計算機(地址10.0.0.2)的條目,該條目從未被系統刪除。但也許它只留下本地網絡中的地址(10 / 8、172.16 / 12和192.168 / 16 –參見[RFC 1918](http://tools.ietf.org/html/rfc1918)),並刪除指向全局地址的地址。 IPv4地址? ``
實際上,我不久前添加了一些條目,但它們仍然存在。新的將被刪除。兩者都在相似的子網中。
您是否能夠確定哪個進程正在更改文件?像fseventer這樣的工具可能會幫助您了解正在編輯文件的內容。由於它通常歸root:wheel所有,因此可以編輯文件的程序列表應該很小。您也可以在文件上設置不可變標誌,而無需還原更改。
六 答案:
Stanislas Nichini
2016-11-23 17:13:31 UTC
view on stackexchange narkive permalink

對我來說,它在文件中

  /etc/pulse-hosts.bak
 

您必須編輯此文件以自定義主機指令

當您要使用Pulse Secure VPN重新連接/連接時,它將合併來自

的指令
  /etc/pulse-hosts.bak
 

包含Pulse指令中的內容,並創建

  / etc / hosts
 

2018更新

使用新版本的Pulse Secure,您必須先退出程序(檢查活動進程)。

修改主機(/ etc / hosts),然後重新啟動Pulse Secure。

SkP
2014-08-10 23:15:43 UTC
view on stackexchange narkive permalink

如果您正在使用Juno Pulse VPN客戶端,則 / etc / hosts 會被 /etc/jnpr-pulse-hosts.bak

覆蓋
Harald Hanche-Olsen
2013-07-19 02:11:28 UTC
view on stackexchange narkive permalink

作為幫助您找到罪魁禍首的工具,這是一個dtrace oneliner,它可打印打開文件以供寫入的任何進程的pid和名稱以及文件名:

  dtrace -qn'syscall :: open *:entry / arg1&3 / {printf(“%d%s%s \ n”,pid,execname,copyinstr(arg0)); }' 

它需要以root用戶身份運行(例如,使用sudo)。將其傳送到 grep主機中,以避免淹沒輸出並丟失您要查找的內容:

  sudo dtrace -qn'syscall :: open *:entry / arg1&3 / {printf(“%d%s%s \ n”,pid,execname,copyinstr(arg0)); }'| grep主機 

希望這將告訴您什麼進程正在覆蓋文件。只要讓它在終端窗口中運行直到觸發即可。

Gordon Davisson
2013-07-19 02:26:38 UTC
view on stackexchange narkive permalink

您是否使用Cisco的AnyConnect VPN客戶端?如果是這樣,則需要編輯/etc/hosts.ac,然後將其複製到實時文件中。請參閱此MacOSXHints文章,以及這些上一個 問題

編輯:我找不到有關Janos Pulse的任何東西。 ,但是Juniper的Ne​​twork Connect與/ etc / hosts混在一起,我懷疑Pulse可能會做同樣的事情。根據此博客文章,如果您在連接時進行更改,則在斷開連接時將還原它們,但是在斷開連接時所做的更改將保留。

不,我不使用AnyConnect,也沒有/etc/hosts.ac。但是,我使用的是另一種代理軟件:Junos Pulse
我可以使用Junos Pulse 5.1.8確認這種行為。必須在斷開連接時對`/ etc / hosts`進行更改,否則您將丟失它們。
Shreyash Limbhetwala
2019-07-08 11:50:06 UTC
view on stackexchange narkive permalink

進入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`?
嗨,@nohillside,,我在我的`/ etc / hosts`文件中添加了`127.0.0.1 quickstart.cloudera`條目,但是當我連接到VPN時它被擦除/覆蓋了。為了永久添加`127.0.0.1 quickstart.cloudera`條目,我將其添加到`/ private / etc / hosts`文件中。在內部,每當您嘗試連接到VPN時,它將所有條目從/ private / etc / hosts複製到/ etc / hosts。我希望現在有道理。
嗨,@nohillside,,僅供參考...我正在使用F5 Big-IP Edge客戶端,並且我使用的是Mac OS。
在macOS上,/ etc是到private / etc的符號鏈接,因此,/ etc / hosts和/ private / etc / hosts實際上是同一文件(運行`ls -li / etc / hosts / private / etc/ hosts`檢查)。
您是正確的@nohillside,,但是在`/ private / etc / hosts`中添加條目後,我的問題得到解決,並且連接到VPN後,我的條目也不會被擦除/覆蓋。
Michel
2019-12-19 00:01:47 UTC
view on stackexchange narkive permalink

更改/ etc / hosts文件時,請確保未連接到VPN(至少在使用Juniper Networks的Network Connect的情況下)。

https://mcphersonz.wordpress.com/2009/11/12/etchosts-file-is-re-verting-to-a-previous-state-in-os-x/

這個問題從六年前就已經被接受。原始帖子未提及正在使用的VPN。儘管您的問題可能對使用VPN時遇到此問題的其他用戶(特別是Jupiter Networks的用戶)有所幫助,但與原始帖子無關。
@IconDaemon感謝您的熱情歡迎。這與6年前無關緊要,因為該頁面仍然是搜索引擎中的第一熱門。另外,已經有其他4個答案提到VPN可能引起完全相同的問題(與我自己的情況相同),即使公認的答案似乎已經解決了OP的問題。但是,即使他在給Gordon的評論中也承認他使用了VPN(Junos Pulse)。也許您應該否決我的答案,因為在Stanislas的答案更新中已經提到了禁用VPN(但這不是您所說的)。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...