在Mac终端中编辑hosts文件需用sudo权限调用nano、vim或sed:nano适合新手,vim适合熟练用户,sed适合批量操作;修改后须执行sudo dscacheutil -flushcache和sudo killall -HUP mDNSResponder刷新DNS缓存。

如果您需要在Mac系统中通过终端快速编辑hosts文件,以实现域名到指定IP地址的手动映射,则需绕过图形界面权限限制,直接调用系统级命令行编辑器完成修改。以下是解决此问题的步骤:
一、使用nano编辑器修改hosts文件
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编辑器修改hosts文件
vim是Unix系统标准编辑器,采用模式化操作机制,支持高效跳转与结构化编辑,适用于熟悉其基本流程的用户,避免图形界面权限弹窗干扰。
1、在终端中执行命令:sudo vim /etc/hosts,输入管理员密码后进入只读视图。
2、按 i 键进入插入模式,此时可在任意位置添加或修改内容,例如追加:0.0.0.0 ads.example.com。
3、编辑完成后,按 Esc 键退出插入模式,返回命令模式。
4、输入::wq 并回车,完成保存并退出 vim。
三、使用sed命令行工具批量追加映射规则
sed可用于非交互式地向hosts文件末尾追加新规则,适用于脚本化操作或需重复配置多个条目的场景,避免手动编辑风险。
1、在终端中执行命令:echo "192.168.1.50 devserver.local" | sudo tee -a /etc/hosts,回车后输入管理员密码。
2、如需追加多行,可将多条记录写入临时文件,再用:sudo cat temp_hosts >> /etc/hosts 完成合并。
3、执行完毕后,检查文件末尾是否已正确写入目标映射行。
四、刷新DNS缓存使修改立即生效
系统DNS解析服务会缓存旧记录,不刷新则新hosts规则可能无法即时响应,必须强制清除缓存并重启相关服务。
1、在终端中输入命令:sudo dscacheutil -flushcache,回车后输入管理员密码。
2、继续输入命令:sudo killall -HUP mDNSResponder,强制重启DNS服务。
3、执行完毕后,新的域名映射即刻生效,可通过ping命令验证。











