我正在嘗試將 google.com 重定向到我的本地計算機,以便使用 Mac 上的 /etc/hosts 檔案來娛樂和學習。
127.0.0.1 www.google.com
但是,當我在 Mac 上的 Chrome 中造訪 www.google.com 時,www.google.com 仍然會對應到 Google 主頁。為什麼?
基本上,這就是我所做的一切:
- 輸入
sudo vim /etc/hosts
終端。 - 輸入
127.0.0.1 www.google.com
到hosts檔案中。 - 儲存並退出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 尊重新條目,請執行以下操作:
按照@Renan 的描述進行編輯
/etc/hosts
。去
chrome://chrome/settings/clearBrowserData
。選擇
since the beginning of time
。選中
Empty the cache
,但取消選中其他所有內容。點擊
Clear browsing data
並等待它完成。重新啟動 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
。
- 去
chrome://chrome/settings/clearBrowserData
。 - 從一開始就選擇。
- 選取清空緩存,但取消選取其他所有內容。
- 點擊“清除瀏覽資料”並等待其完成。
- 重新啟動 Chrome。
Chrome 現在應該尊重您的主機檔案。