支持您的網絡的所有操作系統都有一個主機文件,用於將主機名轉換為 IP 地址。當你輸入主機名並打開網站時,系統會讀取hosts文件看到對應的IP並打開。 hosts 文件是在 Linux 和 Mac OS 上找到的簡單文本文件 (/ETC//主持人)。 Windows 也有一個 hosts 文件。 在 Windows 上,它可以在 WindowsSystem32driversetc 中找到。
外觀如下。
從我們提到的內容來看,您可能認為該文件包含一長串 IP 及其對應的主機名,但事實並非如此。 hosts 文件只包含幾行。
- 默認情況下,第一部分包含本地主機和機器的主機名和 IP 地址。這是您通常會更改以進行必要更改的部分。
- 第二部分包含有關啟用 IPv6 的主機的信息,您很少編輯這些行。
每次輸入地址時,系統都會檢查 hosts 文件是否存在。如果存在,就會轉發到對應的IP。如果主機名未在 hosts 文件中定義,系統會檢查 Internet DNS 服務器以獲取適當的 IP 並相應地進行重定向。
為什麼要編輯 /etc/hosts 文件?
通過編輯主機文件,您可以:
- 阻止網站
- 處理攻擊或解決惡作劇
- 為本地服務器上的位置創建別名
- 覆蓋 DNS 服務器提供的地址
- 控制對網絡流量的訪問
/etc/hosts 如何編輯文件?
作為超級用戶,您只能編輯 /etc/hosts 中的 hosts 文本文件。首先,您需要在 Linux 終端文本編輯器中打開它,例如 VI Editor、Nano Editor 或 gedit。然後進行必要的更改並保存文件以使這些更改生效。
在本文中,您將使用 Nano Editor 編輯文件。輸入以下命令。
$ sudo nano /etc/hosts
還
$ sudo gedit /etc/hosts
(對於 gedit)
編輯 hosts 文件的第一部分,該部分定義瞭如上所述的 IP 地址和主機名。 描述使用 hosts 文件的兩種方法:
- 阻止網站
- 通過別名訪問遠程計算機
阻止網站
您可以通過將網站重定向到本地主機的 IP 或默認路由來阻止網站。
例如,如果您想阻止 google.com,您可以將以下文本添加到您的文件中:
127.0.0.1 www.google.com
現在,當您打開 Google 網站時,系統將從主機文件中獲取本地主機的 IP(127.0.0.1)並重定向到該 IP,而不是來自 DNS 服務器的 Google IP。
還
0.0.0.0 www.google.com
現在,當您打開 Google 網站時,系統將從 hosts 文件中獲取默認路由的 IP(0.0.0.0)並重定向到該 IP,而不是來自 DNS 服務器的 Google IP。
編輯後的文件如下所示。按 ctrl + X 保存更改。
現在,當我嘗試從瀏覽器打開 www.google.com 時,我收到以下錯誤消息:
請注意,我們在 hosts 文件中定義了完整地址 www.google.com 以及主機名 google.com。這是因為如果您只定義後者,現代瀏覽器可能會繞過該塊。
您還可以在 hosts 文件中使用一些預定義的阻止列表。 https://github.com/StevenBlack/hosts
通過別名訪問遠程計算機
假設您在要訪問的本地網絡上有一台服務器。除非在您的本地 DNS 中定義,否則您通常需要輸入服務器的 IP 才能訪問服務器。 避免多次輸入 IP 的一種方法是在 hosts 文件中為服務器分配別名,如下所示:
192.168.1.10 myserver
IP 對應於您正在訪問的服務器的位置,而 myserver 是要使用的新別名。
保存文件並在地址欄中鍵入 myserver,您將被重定向到遠程服務器。
您已經了解到,您可以根據需要通過對主機文件進行非常簡單的更改來自定義和重定向網絡流量。您還可以通過將主機文件重置為默認值來消除網絡攻擊和惡作劇。