hosts 檔案位置與權限
macOS 的 hosts 檔案位於 /etc/hosts,屬於系統保護檔案,編輯需要 管理員權限 (sudo)。
方法一:終端機 + vim/nano(推薦,快速且通用)
- 開啟「終端機」(Cmd+Space 輸入 Terminal)。
- 輸入指令編輯:
sudo vim /etc/hosts
或使用較友善的 nano:
sudo nano /etc/hosts
- 輸入管理員密碼(輸入時不顯示字元,按 Enter 送出)。
- 編輯檔案:
vim:按 i 進入插入模式 → 修改 → Esc → 輸入 :wq 存檔離開。
nano:直接修改 → Ctrl+O 存檔 → Enter 確認 → Ctrl+X 離開。
- 立即生效:macOS 會自動快取 DNS,執行以下指令清除快取:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
方法二:使用內建 TextEdit 圖形化編輯(適合不習慣終端機者)
- 終端機執行:
sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit /etc/hosts
- 輸入密碼後,TextEdit 會以 root 權限開啟 hosts 檔案。
- 編輯完成後,直接 Cmd+S 存檔。
- 同樣執行清除 DNS 快取指令使變更生效。
注意:以 root 身分開啟圖形介面應用程式屬於高權限操作,僅建議在信任環境下使用,編輯完成後請立即關閉視窗。
hosts 檔案常用範例
# 封鎖網站(導向本機)
127.0.0.1 www.distracting-site.com
127.0.0.1 ads.example.com
# 本地開發網域對映
127.0.0.1 myproject.local
192.168.1.50 intranet.company.local
# IPv6 範例
::1 ipv6-localhost
fe80::1%lo0 ipv6-loopback
常見問題
- 權限不足無法存檔:確認使用
sudo,且帳號為管理員群組。
- 修改不生效:執行 DNS 快取清除指令;檢查瀏覽器是否啟用 DoH (DNS over HTTPS) 繞過系統 DNS(Firefox/Chrome 設定中關閉)。
- 檔案被鎖定:確保沒有其他程式正在編輯同一檔案。
進階管理工具推薦
- Gas Mask(免費開源):選單列常駐,一鍵切換多組 hosts 設定檔。
- Hosts.prefpane:系統偏好設定面板形式管理。
- SwitchHosts!:跨平台(Win/Mac/Linux),支援遠端同步、分組管理。
善用 hosts 檔案可實現本地開發網域對映、廣告/惡意網域封鎖、測試環境切換等實用功能,是開發者與進階用戶的必備技能。