Linux 中 /etc/hosts 文件的用途是什么?
Linux 或任何其他操作系統中的 /etc/hosts 文件用于映射IP地址和域名。
這是一個很一般的答案,對吧?本文將更加深入的了解一些關于該文件的用途。
Linux 中的 /etc/hosts 文件是什么
在聯網的早期,/etc/hosts 文件被用來將 IP 地址(比如:8.8.8.8)轉換為人類可讀的形式(比如:??www.google.com??),隨著時間的推移,該功能不再被需要。現在,解析域名的整個過程都是通過 DNS(域名系統)完成的。
既然如此,我們為什么還需要保留這個文件呢? 目前,hosts 文件雖然很少但仍在部分情況下被使用到:
- 當你想阻止某網站時;
- 當DNS被破壞時,它可以用作備份;
- 也可以將其用作本地DNS服務器。
此外我們還可以想到的許多其他任務,例如阻止廣告、加固本地防火墻,以及許多其他涉及 IP 和 DNS 使用的任務等。
下面我們通過例子來介紹一下關于 /etc/hosts 文件的幾個實際用途。
使用/etc/hosts文件重定向URL
hosts 文件需要兩個組件才能工作:域名和 IP。
所以接下來(作為演示的例子,我們使用百度的地址),我們要做的是使用百度的DNS,并將其重定向到百度的IP。 首先我們來使用 ping 命令來獲取百度的 IP 地址:
現在,我們打開 hosts 文件(在我們的例子中我們使用 vim 編輯器):
上面例子中,最后兩行是我們新添加的。
那現在當我在 ping ??www.tiap.com?? 的時候,它就會被重定向到百度的 IP:
你可以使用此方法將網站從一臺服務器遷移到另一臺服務器。在實際將網站的DNS更改為新服務器之前,需要在新服務器上進行所有更改,該服務器可以通過系統上的域名進行訪問。
使用 /etc/hosts 文件阻止不需要的網站
接下來我們要做的,是將本地 IP 地址分配給不想再訪問的站點。 比如,我們想要屏蔽 Facebook。首先 ping 一下 Facebook,以檢驗正常情況下是可以訪問的(國內訪問需要FQ):
然后編輯 hosts 文件:
當我們再次訪問 Facebook 時,顯示如下:
使用 /etc/hosts 文件創建網站快捷方式
如果一個網站的域名比較長,我們可以為其取一個簡短的名稱,作為其快捷方式在本機使用。比如,我們為 Linuxhandbook 創建一個名為 ??lhb.com?? 的快捷方式。 首先,需要獲取 linuxhandbook 的 IP地址:
然后修改 hosts 文件:
做如下更改:
完成之后,可以 ping 一下快捷方式:
通過上圖可以看到,訪問原域名與快捷方式的域名完全一樣。