如何在 macOS (Mac OS X) 中編輯主機文件
Mac 的主機文件是一個小而重要的文本文檔,它能夠將主機名映射到指定的 IP 地址。
雖然現代 Internet 使用許多公共和私有 DNS 服務器來解析 IP 地址,但 hosts 文件是覆蓋這些 DNS 服務器的便捷方式,允許您手動將網站地址指向所需的 IP 地址或阻止對站點的訪問,指向到未使用的或內部 IP 地址。
讓我們快速看一下如何在 macOS 中編輯 Mac 主機文件。
如何使用文本編輯編輯 Mac Hosts 文件
在 Mac OS X 中編輯 hosts 文件有兩種主要方法。
首先,使用 TextEdit,因為 hosts 文件是純文本文檔。但是,您無法直接打開該文件,因為它位於文件系統的受保護區域中。相反,我們需要將文件複製到不安全的位置,例如桌面,對其進行編輯,然後將其複制回來。
- 要查找 hosts 文件,請打開 Finder,可以通過單擊桌面、屏幕左下角的表情符號查找器或按cmd +空格鍵+ Finder來訪問它。
- 現在選擇Go 下拉菜單。
3. 然後從菜單中選擇轉到文件夾。
4. 在該字段中,輸入“/private/etc/hosts”並單擊“返回”。
5. 一個新的 Finder 窗口將打開,您的 Mac 的 hosts 文件將被選中。單擊並將其從Finder 窗口拖動到桌面。
阻止 IP 地址
默認情況下,/etc/hosts 文件比較簡單。它包含幾行用井號或數字符號(也稱為主題標籤或主題標籤)(#)“註釋掉”的描述性文本。
任何以 # 符號開頭的行都是註釋,不會被 /etc/hosts 文件讀取。對於每一行,井號之後的任何文本都會被計算機忽略,這使其成為向文件添加註釋和描述的好方法。它還包含本地主機和廣播主機的默認 IP 值。要編輯文件,您將在廣播主機之後添加自己的行。
除了測試新開發的網站和遷移虛擬主機之外,編輯主機文件的另一個原因是阻止對某些網站的訪問。
在我們的示例中,我們將假設我們正在使用的計算機是我們想要專門用於工作的設備,而不會讓自己被工作機器上的 Facebook 分心。
為此,請輸入您要分配的 IP 地址,然後輸入兩個選項卡和主機名。在我們的例子中,我們想要阻止 Facebook,所以我們將 www.facebook.com 映射到 0.0.0.0,作為一個無效的 IP 地址,會導致錯誤。
重定向網址
或者,您可以輸入有效站點的 IP 地址而不是 0.0.0.0,這將導致嘗試訪問 Facebook 的用戶被重定向到您選擇的站點。
- 要確定網站的 IP 地址,您可以使用 macOS 標配的 dig 命令。要通過終端挖掘站點,我們只需打開終端,然後在 URL 上運行 dig 命令,然後返回 IP 地址作為輸出。
- 現在輸入“
$ dig www.techjunkie.com + short
104.25.27.105
”
筆記。+short 參數在輸出中只保存了我們需要的信息,即 IP 地址。
3. 記下返回的 IP 地址並將其用於您的 Mac 主機文件映射。例如,紐約時報網站返回 IP 地址 170.149.172.130。如果我們在 hosts 文件中將其映射到 Facebook,每次使用 Mac 的人嘗試導航到 Facebook 時,他們都會看到《紐約時報》正在加載。
4. 您可以在主機文件中添加任意數量的條目,在每一行輸入新的映射。對主機文件進行必要的更改後,將其保存到桌面上的當前位置。
5. 然後將主機文件從桌面拖回/private/etc中的原始位置。如果您關閉了指向該目錄的 Finder 窗口,只需使用上面的Finder > Go > Go to Folder命令再次打開它。
6.當你將hosts文件拖回原來的位置時,macOS會詢問你如何處理已經存在的未修改的hosts文件。選擇Replace,然後輸入 admin 密碼進行遷移認證。
現在修改後的 hosts 文件已就位,啟動 Web 瀏覽器以驗證更改。
刷新 DNS 緩存
在大多數情況下,新映射應該立即生效,但如果您沒有看到正確的行為,您可能需要通過讓瀏覽器讀取您的主機文件以確定映射來刷新 DNS 緩存。
- 要清除 Mac 上的 DNS 緩存,請打開終端並使用以下命令(sudo 允許您在計算機上以管理員身份運行此命令):
- 現在鍵入“
sudo killall -HUP mDNSResponder
”並按“ Return ”鍵。筆記。您需要輸入管理員密碼才能運行此命令。 - 要讓您的 Mac 清除 DNS 緩存,然後通過再次確認來確認它已清除緩存,請輸入以下兩個用分號分隔的命令:“
sudo killall -HUP mDNSResponder;say DNS cache has been flushed
”
然後您的 Mac 將通過揚聲器發出聲音並說“DNS 緩存已清除”。
如何使用 Nano 在終端中編輯 Mac 主機文件
上一節的步驟很簡單,但如果你想避免複製 hosts 文件,你可以使用 macOS 內置的 UNIX Nano 文本編輯器直接在終端中編輯它。
- 首先,啟動終端,鍵入以下命令,然後按 Enter 鍵。與所有 sudo 命令一樣,您還需要輸入管理員密碼才能執行它
"sudo nano /private/etc/hosts
:
2. 您現在將看到在Nano、vim 或您選擇的其他編輯器中打開的hosts 文件。使用鍵盤上的箭頭鍵在Nano中導航和編輯文件。
3.與上面的TextEdit方法一樣,我們可以根據需要添加、編輯或刪除主機名映射。因為我們使用 sudo 啟動 Nano,所以任何更改都將通過身份驗證並直接保存到原始 hosts 文件中,而無需將其複製到其主目錄之外。
4. 完成更改後,按Control-X退出編輯器,按Y保存,然後按Return覆蓋現有的 hosts 文件。
如前所述,如果您發現新映射無法正常工作,請務必清除 DNS 緩存。
我們的示例提到在生產中阻止和重定向分散注意力的網站,但您也可以使用這些步驟手動阻止對惡意網站的訪問,當然還有其他目的。
如果您犯了錯誤並且不知道如何修復它,您可以隨時使用上述方法之一將主機文件的內容恢復為默認值,以輸入以下默認信息:
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost::1 localhost
fe80::1%lo0 localhost
最後的想法
了解如何在 macOS 上編輯 hosts 文件提供了一種方便的方法來覆蓋 DNS 服務器並手動將網站指向新的 IP 地址或阻止訪問,並且按照上述步驟,您可以非常快速地完成此任務。
如果您是 Mac 用戶並且發現本文有幫助,您可能需要查看其他 TechJunkie 指南,包括如何查找 Mac 的確切 CPU 型號和如何在 Mac Mojave 中重置 DNS。
您嘗試編輯 Mac 的 hosts 文件的原因是什麼?它是如何工作的?請在下面的評論中告訴我們!
發佈留言