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