在Mac上修改hosts文件最稳妥方法是用nano编辑器:第一步终端执行sudo nano /etc/hosts并输管理员密码;第二步移光标至末尾空白行,按“IP+空格+域名”格式添加规则(如127.0.0.1 api.myapp.test);第三步按Ctrl+O保存、Ctrl+X退出;最后必须运行sudo dscacheutil -flushcache和sudo killall -HUP mDNSResponder刷新DNS缓存方可生效。

在Mac上修改本机hosts文件,可立即屏蔽广告域名或强制将开发域名解析到本地IP(如127.0.0.1或192.168.1.50),无需依赖网络DNS,所有系统级应用(Safari、Chrome、curl、Postman、终端命令)均会优先读取该文件生效;但若直接双击编辑或拖入文本编辑器保存,系统会因权限拒绝而失败。
用nano编辑器安全追加规则
这是最稳妥的入门方式,nano自带底部快捷键提示,不会误删已有条目,且编辑过程受sudo全程保护。
第一步:打开终端,输入 【sudo nano /etc/hosts】 并回车,随后输入管理员密码(输入时无任何显示,输完直接按回车)。
第二步:用方向键将光标移至文件最后一行之后的空白行,新增一行,严格按“IP地址+至少一个空格+域名”格式书写,例如屏蔽广告:0.0.0.0 adservice.google.com;或绑定开发域名:127.0.0.1 api.myapp.test。
第三步:按 Control + O 保存,回车确认文件名;再按 Control + X 退出编辑器。这一步不可跳过,否则修改未落盘。
用vim编辑器快速批量修改
适合已熟悉vi/vim基础操作的用户,能精准跳转到行尾、插入新行、保存退出一气呵成,不依赖图形界面弹窗。
方法一:在终端执行 【sudo vim /etc/hosts】,输入密码后进入只读视图。
方法二:按 i 键进入插入模式,在文件末尾新增行,输入目标映射;若需修改某一行,可用 $ 跳至行尾、0 跳至行首、dd 删除整行。
方法三:按 Esc 退出插入模式,输入 :wq 并回车——注意冒号不能遗漏,否则命令不生效。
用终端命令一键追加不打开编辑器
完全规避手动编辑风险,尤其适合脚本化部署或一次添加多条规则,且支持管道校验。
运行命令:echo "127.0.0.1 fakeapi.local" | sudo tee -a /etc/hosts,回车后输入密码,新行即刻追加到底部。
GitHub Hosts 更新工具(仅限中国用户),安全更新系统hosts文件,保留原有非GitHub条目,仅替换GitHub相关地址。支持备份恢复和风险提示。用于解决GitHub访问问题。
若要一次添加三条,先创建临时文件:cat > /tmp/new_hosts ,换行后依次写入三行规则,再输入 <code>EOF 回车;最后执行:sudo cat /tmp/new_hosts >> /etc/hosts。
验证是否写入成功:运行 tail -n 3 /etc/hosts,确保末尾三行是你刚添加的内容。
用访达+文本编辑器图形化操作
全程避开终端命令,适合对命令行有顾虑但需要临时调整的用户;关键在于绕过系统目录写入限制。
第一步:打开访达,按 Shift + Command + G,输入 /private/etc,点击“前往”。
第二步:找到 hosts 文件,右键→“显示简介”,点击右下角锁形图标解锁,将当前用户权限改为“读与写”。【此步必须完成,否则后续无法保存】
第三步:双击 hosts 文件,用“文本编辑”打开,在末尾添加规则后,直接按 Command + S 保存即可。
第四步:保存完成后,立刻回到“显示简介”窗口,把权限改回“只读”,避免系统安全机制被长期绕过。
刷新DNS缓存让修改立即生效
macOS Sonoma 及更新系统(包括当前 2026 年 11 月的版本)必须执行这两条命令,缺一不可,否则浏览器仍可能返回旧解析结果。
在终端中依次运行:
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

















