如果自己搭建過網(wǎng)站, 倒騰過服務(wù)器,那么一定會聽說過hosts這個概念,如:單服務(wù)器搭建多個網(wǎng)站,需要修改hosts;本地環(huán)境搭建,可以訪問localhosts等等。
那么hosts到底是什么東西?怎樣修改hosts?hosts的系統(tǒng)路徑在哪?改完hosts又能起到什么作用?本文作為一篇關(guān)于hosts的小科普文,可以讓小白大概了解它。
hosts的概念
一般來說,當用戶在電腦瀏覽器里輸網(wǎng)址后,系統(tǒng)需要通過查詢網(wǎng)絡(luò)上的DNS服務(wù)器,才能將域名解析成對應(yīng)的IP地址,瀏覽器通過IP地址才能找到該網(wǎng)站所在的服務(wù)器進行訪問。

而操作系統(tǒng)中的hosts文件則是有著類似“本地DNS服務(wù)器”的作用,而且比網(wǎng)絡(luò)上的DNS具有更高的優(yōu)先級。如果你在hosts里面配置了某個域名和IP的對應(yīng)關(guān)系,比如127.0.0.1 -> localhost,那么當你在本機訪問localhost時,系統(tǒng)首先會從hosts里面解析出127.0.0.1這個IP,而不會再去查詢網(wǎng)絡(luò)上的DNS服務(wù)器。
劃重點:hosts文件僅對本機生效,對其他電腦和網(wǎng)站本身不會造成任何影響。
修改hosts有什么作用?
根據(jù)上述的特點,hosts文件可以應(yīng)用在很多場景,比如:
- 強制制定域名的IP,加快域名解析(省略了聯(lián)網(wǎng)查詢DNS的步驟),也能熬過DNS污染與劫持;
- 為局域網(wǎng)某些IP的機器配置一個“網(wǎng)址別名”,方便自己記憶和訪問。比如配置 gongsi.com 訪問公司網(wǎng)站;配置mail.com 訪問自己常用的郵箱等。當然前提是要知道目標網(wǎng)站服務(wù)器的IP地址。
- 將域名指向到不可訪問的IP地址,達到屏蔽不健康網(wǎng)站、屏蔽垃圾廣告網(wǎng)址的效果;同理也能禁止系統(tǒng)、軟件、網(wǎng)站訪問某些指定的網(wǎng)址;
- 開發(fā)或測試應(yīng)用時,利用Hosts將域名臨時指向到測試服務(wù)器IP,可以方便自己測試,同時又不影響他人和線上的應(yīng)用。
hosts還有很多不同的用途,但比較常見的主要是用來屏蔽指定網(wǎng)址,以及程序員在開發(fā)、測試階段用于配置服務(wù)器IP。
怎樣修改 hosts?
不同的操作系統(tǒng)修改 hosts 文件的方法不一樣,它所在的路徑也不一樣。常見操作系統(tǒng)的 hosts 文件的位置路徑為:
- Windows 系統(tǒng) Hosts 文件路徑:C:\Windows\System32\drivers\etc\hosts;
- Mac 系統(tǒng) hosts 文件路徑:/etc/hosts;
- Linux 系統(tǒng)的 hosts 文件一般也是在:/etc/hosts;
- Android 系統(tǒng)的 hosts 文件路徑:/system/etc/hosts (需要Root權(quán)限修改);
由于hosts屬于系統(tǒng)文件,因此需要管理員權(quán)限才能對內(nèi)容進行修改。
找到了hosts文件,一般使用任意文本編輯器都能打開它進行修改內(nèi)容,一行一個IP地址和域名的對應(yīng)關(guān)系,格式是: IP地址 + 空格 + 域名,這里的域名不一定要求 XXX.com,也可以是一個單詞比如 localhost 或者其他自定義的一串字符??梢愿鶕?jù)自己的需要增加或修改hosts的內(nèi)容。

修改 hosts 后不生效怎么解決?
無論是手工修改hosts還是使用自動化軟件修改,偶爾會遇到修改后不生效的情況,這一般是由于DNS緩存的原因。
因為系統(tǒng)為了加快用戶打開網(wǎng)站的速度,在時候首次訪問網(wǎng)站成功之后,會把DNS解析的結(jié)果暫時性地保存在本地緩存(稱為DNS緩存)里一小段時間,如果瀏覽器在“這段時間里”再次打開同一個網(wǎng)址,則會自動從DNS緩存里取出結(jié)果,而不會請求遠程的DNS服務(wù)器,也不會查詢hosts文件,從而節(jié)省時間提高打開速度。
因此當修改hosts文件后不生效,一般只需清空系統(tǒng)的DNS緩存即可。
至于DNS緩存怎么清?自己去查咯~~哈哈
總結(jié)
hosts 并不神秘,簡單理解它就是個電腦本機的“IP地址 <-> 域名”的對應(yīng)表,系統(tǒng)或任何軟件都會優(yōu)先檢查hosts里面有沒有對應(yīng)的配置,之后才會去查詢網(wǎng)絡(luò)上的DNS服務(wù)器。慢慢琢磨,相信你也可以用hosts做很多有趣、有用的事情。
背景:B2B SaaS產(chǎn)品 創(chuàng)業(yè)公司;
人設(shè):產(chǎn)品轉(zhuǎn)崗的運營人;
目標:完善B2B SaaS產(chǎn)品運營體系,完成全年引流1000+Leads的目標;
地點:浙江 · 杭州;
時間:2018年4月3日;