必须修改系统级hosts文件,四种方法:一、用nano终端编辑(适合新手);二、用vim终端编辑(适合熟悉用户);三、用echo+tee命令追加并刷新dns缓存;四、用finder图形界面配合文稿编辑(需临时改权限)。

如果您需要在 macOS 系统中自定义域名解析规则,例如将 test.local 指向 127.0.0.1 或屏蔽广告域名,则必须修改系统级 Hosts 文件。该文件位于 /etc/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 采用模式化操作机制,支持高效跳转与结构化编辑,适用于熟悉其基本流程的用户,可绕过图形界面权限弹窗干扰,直接在受保护路径下完成编辑。
1、在终端中执行命令:sudo vim /etc/hosts,输入管理员密码后进入只读视图。
2、按 i 键进入插入模式,此时可在任意位置添加或修改内容,例如追加:0.0.0.0 ads.example.com。
3、编辑完成后,按 Esc 键退出插入模式,返回命令模式。
4、输入::wq 并回车,完成保存并退出 vim。
三、通过终端命令追加条目并刷新 DNS 缓存
该方法不打开交互式编辑器,而是利用重定向语法向 hosts 文件末尾安全追加新规则,完全规避手动编辑风险,同时自动触发系统 DNS 缓存刷新,确保修改立即参与域名解析流程。
1、在终端中运行:echo "127.0.0.1 fakeapi.example.org" | sudo tee -a /etc/hosts。
2、执行:sudo dscacheutil -flushcache 清除本地 DNS 缓存。
3、执行:sudo killall -HUP mDNSResponder 重启多播 DNS 响应服务。
四、通过 Finder 图形界面配合文本编辑器修改
该方法全程使用 macOS 原生图形应用,绕过命令行操作,适合对终端不熟悉但需临时调整 hosts 的用户;关键在于解决系统目录写入权限限制问题,操作后需恢复原始权限以保障系统安全。
1、打开“访达”,按快捷键 Shift + Command + G,在弹出框中输入路径:/etc/hosts,点击“前往”。
2、找到 hosts 文件后,右键选择“用文稿编辑打开”,或拖入已打开的“文稿编辑”窗口。
3、若提示“无法解锁”或保存失败,则需提前修改权限:返回访达,进入 /private/etc 目录,右键单击“etc”文件夹 → “显示简介” → 点击右下角锁图标解锁(需输入管理员密码)→ 将当前用户权限设为“读与写”。
4、编辑完成后,在“文稿编辑”中点击“文件” → “存储”,覆盖保存;保存成功后,关闭应用;随后再次打开“etc”文件夹的“显示简介”,将权限改回“只读”并锁定小锁。











