題 更改HOSTS文件內容後,為什麼不需要重新啟動


我和某個人討論過,當有人問我修改主機文件時是否需要重新啟動Linux操作系統。

從個人經驗來看,在Windows上我改變了文件,但沒有重啟,我看到其他人做同樣的事情。我認為Linux沒有例外,但是有沒有理由不重新啟動(至少證明我的行為是正確的)?

謝謝


4
2017-10-18 21:58


起源




答案:


在每個DNS請求上讀取hosts文件。這意味著它不會保存到內存中,因此您所做的更改是實時的。


11
2017-10-18 22:08



所以你的意思是說文件的內容保留在磁盤上但是當一個請求進入DNS服務器時,它會讀取我機器上的HOSTS文件? - gs5
您的計算機首先檢查hosts文件。如果找不到主機名的映射,則會詢問您的DNS服務器。 - Madison S
我同意以上所述。查看/etc/nsswitch.conf - JT.WK


在Mac OS X中,您無需在編輯hosts文件後重新啟動。你所要做的就是打字 dscacheutil -flushcache對於Windows, 至少比Windows 9x更新,由於微軟做出的改變,立即做出了改變。由於存在許多不同的Linux發行版,每個發行版可能以不同方式重新啟動網絡服務,但對於基於Red Hat的操作系統, service network restart應該做的伎倆。從技術上講,您根本不必重新啟動Linux計算機,只需重新啟動依賴於網絡和主機文件的所有服務。如果沒有完整的系統重啟,這些服務可能不會重新啟動,但重啟系統比殺死和重新啟動8+服務和守護進程要容易得多:)


4
2017-10-18 22:07



您不需要重新啟動任何服務來編輯任何操作系統上的hosts文件。保存文件後,應立即顯示更改。 - Zac Garrett
“應該”是關鍵字。重要的服務一直在緩存事物。通過刷新緩存或重新啟動服務,服務必須向系統詢問最新信息(包括主機文件更改)。雖然您希望從hosts文件讀取,但如果進程的緩存中有某些內容尚未過期,則它將使用緩存。 - Madison S