為什麼主機檔案重定向失敗?

為什麼主機檔案重定向失敗?

我正在嘗試將 google.com 重定向到我的本地計算機,以便使用 Mac 上的 /etc/hosts 檔案來娛樂和學習。

127.0.0.1 www.google.com

但是,當我在 Mac 上的 Chrome 中造訪 www.google.com 時,www.google.com 仍然會對應到 Google 主頁。為什麼?

基本上,這就是我所做的一切:

  1. 輸入sudo vim /etc/hosts終端。
  2. 輸入127.0.0.1 www.google.com到hosts檔案中。
  3. 儲存並退出vim。

答案1

hosts文件不能以這種方式工作。您只能使用它將主機名稱對應到 IP 位址,而不能對應到localhost.

對於您的情況,您將使用127.0.0.1 www.google.com,即將 www.google.com 映射到 127.0.0.1。

如果您想將更多主機名稱對應到單一 IP,只需將這些主機名稱新增至同一行中,例如127.0.0.1 www.a.com www.b.com

答案2

Web 瀏覽器並不是檢查hosts語法是否正確的最佳方法。嘗試執行

ping www.google.com

並驗證它是否 ping 通127.0.0.1

Chrome 似乎忽略您的文件的原因hosts是快取:

如果 Chrome 最近已經查詢過 IP(最近的定義很可能取決於生存時間 (TTL)由 DNS 伺服器傳回),它將繞過該hosts文件,因為它已經知道正確的IP。這樣做是為了加快網頁瀏覽速度。

若要使 Chrome 尊重新條目,請執行以下操作:

  1. 按照@Renan 的描述進行編輯/etc/hosts

  2. chrome://chrome/settings/clearBrowserData

  3. 選擇since the beginning of time

  4. 選中Empty the cache,但取消選中其他所有內容。

  5. 點擊Clear browsing data並等待它完成。

  6. 重新啟動 Chrome。

Chrome 現在應該尊重您的hosts文件。

答案3

我的答案是上述內容的組合,因為我透過 Ubuntu 16.04 的 Fortinet SSL VPN 連接到我的辦公室。

我要做的第一件事是打開終端機控制台並執行以下命令:

sudo nano /etc/resolvconf/resolv.conf.d/base

我添加了以下示例:

searchdomain domain.local
nameserver xxx.xxx.xxx.xxx
nameserver xxx.xxx.xxx.xxx

然後我按 儲存檔案CTRL-O並按 關閉 nano CTRL-X

然後我執行了以下操作並且效果完美:

若要使 Chrome 尊重新條目,請執行以下操作:

按照@Renan 的描述進行編輯/etc/hosts

  1. chrome://chrome/settings/clearBrowserData
  2. 從一開始就選擇。
  3. 選取清空緩存,但取消選取其他所有內容。
  4. 點擊“清除瀏覽資料”並等待其完成。
  5. 重新啟動 Chrome。

Chrome 現在應該尊重您的主機檔案。

相關內容