Mac用户可通过五种方法修改受保护的/etc/hosts文件:一、nano编辑器交互式修改;二、vim命令行高效编辑;三、Finder图形界面配合权限调整;四、终端命令追加规则;五、桌面复制编辑后替换原文件。

如果您需要在Mac系统中自定义域名解析规则,例如将 test.local 指向 127.0.0.1 或屏蔽特定广告域名,则必须修改位于系统保护路径下的 hosts 文件。该文件默认不可写入,需通过特定方式获取权限并编辑。以下是多种可靠且可立即执行的修改方法:
一、使用 nano 编辑器在终端中直接修改
nano 是 macOS 预装的交互式文本编辑器,界面底部实时显示常用快捷键,无需记忆复杂命令即可完成安全编辑,适合初次操作用户。
1、按下 Command + 空格键唤出 Spotlight 搜索,输入“终端”,回车打开应用。
2、在终端中输入命令:sudo nano /etc/hosts,回车后输入当前管理员密码(输入过程无可见字符,属正常现象)。
3、使用方向键将光标移至文件末尾空白行处。
4、输入新条目,格式为:IP地址 域名(IP 与域名之间至少用一个空格分隔),例如:127.0.0.1 test.local。
5、按 Control + O 保存,回车确认文件名;再按 Control + X 退出编辑器。
二、使用 vim 编辑器在终端中修改
vim 是 Unix 系统标准编辑器,采用模式化操作机制,支持高效跳转与结构化编辑,适用于熟悉其基本流程的用户,避免图形界面权限弹窗干扰。
1、在终端中执行命令:sudo vim /etc/hosts,输入管理员密码后进入只读视图。
2、按 i 键进入插入模式,此时可在任意位置添加或修改内容,例如追加:0.0.0.0 ads.example.com。
3、编辑完成后,按 Esc 键退出插入模式,返回命令模式。
4、输入 :wq 并回车,完成保存并退出 vim。
三、通过 Finder 图形界面配合文本编辑器修改
该方法全程使用 macOS 原生图形应用,绕过命令行操作,适合对终端不熟悉但需临时调整 hosts 的用户;关键在于解决系统目录写入权限限制问题。
1、打开“访达”,按快捷键 Shift + Command + G,在弹出框中输入路径:/etc/hosts,点击“前往”。
2、找到 hosts 文件后,右键选择“用文本编辑打开”,或拖入已打开的“文本编辑”窗口。
3、若提示“无法解锁”或保存失败,则需提前修改权限:返回访达,进入 /private/etc 目录,右键单击“etc”文件夹 → “显示简介” → 点击右下角锁图标解锁(需输入管理员密码)→ 将当前用户权限设为“读与写”。
4、编辑完成后,在“文本编辑”中点击“文件” → “存储”,覆盖保存;保存成功后,关闭应用。
四、通过终端命令追加内容至 hosts 文件
该方法不打开编辑器,而是利用重定向语法向文件末尾追加新规则,完全规避手动编辑可能引发的格式错误或误删风险,适合脚本化或批量操作场景。
1、在终端中运行命令:echo "127.0.0.1 fakeapi.example.org" | sudo tee -a /etc/hosts。
2、执行命令刷新 DNS 缓存:sudo dscacheutil -flushcache。
3、执行命令重启多播 DNS 服务:sudo killall -HUP mDNSResponder。
五、通过 Finder 复制替换方式修改
该方法将 hosts 文件复制到桌面进行编辑,再以管理员权限替换原文件,彻底避开系统级权限校验环节,适合希望保留原始文件结构且不愿临时放宽系统目录权限的用户。
1、打开“访达”,按快捷键 Shift + Command + G,输入路径:/private/etc,点击“前往”。
2、在打开的文件夹中找到 hosts 文件,将其拖拽至桌面(即创建副本)。
3、右键桌面的 hosts 文件,选择“打开方式” → “文本编辑”。
4、在文本编辑中修改内容,添加所需映射行,例如:192.168.1.50 devserver。
5、点击菜单栏“文件” → “另存为”,将文件名设为 hosts,格式选“纯文本”,位置选“桌面”。
6、将桌面上新保存的 hosts 文件拖回 /private/etc 文件夹,弹出提示时点击“取代”,并输入管理员用户名和密码完成替换。










