跳至內容
返回部落格

"如何在 Mac 上編輯 hosts 檔案與管理環境"

Leibniz Li

@leibnizli
+

對網頁開發者、軟體工程師和網路管理員來說,管理主機對應是日常需求。無論把網域指向本機 Docker 容器,還是測試預備環境伺服器,都需要快速覆寫 DNS 解析。

本指南介紹如何用終端機手動編輯 Mac 的 hosts 檔案,解釋手動管理的繁瑣與風險,並介紹簡化工作流程的 macOS hosts 檔案管理器

Helm

第一部分:手動編輯 Mac 的 hosts 檔案

macOS 的 hosts 是位於 /etc/hosts 的純文字檔案(該路徑透過符號連結指向 /private/etc/hosts)。它受系統權限保護,需要管理員(sudo)權限才能編輯。

第一步:開啟終端機

Cmd + Space 開啟 Spotlight,輸入 Terminal 並按 Return。

第二步:用 Nano 開啟 hosts 檔案

輸入以下指令並按 Return,用命令列文字編輯器 Nano 開啟檔案:

sudo nano /etc/hosts

系統會要求輸入 Mac 管理員密碼。基於安全考量,輸入密碼時終端機不會顯示字元或星號,直接輸入後按 Return 即可。

第三步:新增自訂對應

用方向鍵移到檔案底部。不要修改或刪除預設設定,例如 127.0.0.1 localhost

在末尾按以下格式新增 IP 與網域對應:

127.0.0.1      my-local-site.test
192.168.1.50   staging.mysite.com

第四步:儲存並離開 Nano

  • 儲存:按 Ctrl + O,再按 Enter 確認。
  • 離開:按 Ctrl + X

第五步:清除 Mac DNS 快取

修改 hosts 後,Mac 可能仍使用舊快取。要讓新對應生效,需要清除 Mac 的 DNS 快取。在終端機執行:

sudo killall -HUP mDNSResponder

系統會重新載入 hosts 設定,自訂網域對應即可生效。

第二部分:手動管理的常見問題

終端機方法可用,但每天反覆操作會帶來負擔:

  1. **權限疲勞:**每次切換對應都輸入 sudo 和密碼很繁瑣。
  2. **沒有設定方案:**多個專案需要不斷新增或移除 # 註解,使 /etc/hosts 變得雜亂。
  3. **忘記清除 DNS 快取:**容易忘記執行 mDNSResponder 指令,然後困惑於網站為何無法載入。
  4. **語法錯誤:**少一個空格或定位字元等拼寫錯誤,可能破壞關鍵解析對應並引發網路問題。

第三部分:尋找 Gas Mask 的 Mac 替代品?認識 Helm

多年來,Gas Mask 是 macOS 進階使用者常用的開源 hosts 管理器。但長期缺乏維護,可能在現代 Apple Silicon(M1/M2/M3)Mac 上出現介面異常、穩定性問題和安全警告。

SwitchHosts 等現代替代品基於 Electron,管理一個文字檔案也可能占用數百 MB 記憶體。

因此,我們建構了 Helm:原生 macOS hosts 檔案管理器Mac hosts 編輯器

第四部分:為什麼選擇 Helm?

Helm 從一開始就專為 macOS 設計,常駐選單列,讓環境切換只需點擊一次。

🚀 Helm 主要功能

  • **環境設定:**為不同專案建立專用方案,例如「Docker 本機」「預備環境」「客戶 A 正式環境」,一鍵啟用或關閉。
  • **智慧合併:**不會直接覆寫關鍵系統 hosts 設定,而是將啟用的方案與 Mac 預設設定清楚合併。關閉方案後,hosts 自動還原原始狀態。
  • **自動清除 DNS 快取:**無需再輸入 killall -HUP mDNSResponder,切換或編輯方案後立即清除快取。
  • **完全原生,針對 Apple Silicon 最佳化:**資源占用極低、執行快速,介面與 macOS Sonoma、Sequoia 協調一致。
  • **隱私優先:**與 ARayOfSunshine 工具的本機處理理念一致,自訂網域配置、IP 位址和專案設定保留在 Mac 上。

簡化工作流程

不必再反覆在終端機編輯系統設定並承擔語法錯誤風險,快速、安全地切換開發環境、預備站台和本機伺服器。

準備好體驗 Mac hosts 管理器了嗎? 探索並下載 macOS 版 Helm