最稳妥方式是用nano编辑器:sudo nano /etc/hosts,输密码后在末尾添加“ip 域名”格式条目(空格分隔),ctrl+o保存、ctrl+x退出;再执行sudo dscacheutil -flushcache和sudo killall -hup mdnsresponder刷新dns缓存。

你需要在Mac终端里安全地编辑/etc/hosts文件,添加本地开发用的域名映射,但直接双击打不开、用普通命令保存失败、改完不生效——这说明你正面对macOS对系统级配置文件的双重防护:sudo权限校验 + SIP对写入路径的硬性限制。
用nano编辑器安全修改并保存退出
这是最稳妥的入门方式,nano自带底部快捷键提示,不会因误操作进入不可逆状态,全程在终端内完成,绕过图形界面反复弹出的权限警告。
第一步:按下Command + 空格唤出Spotlight,输入“终端”,回车打开。
第二步:输入命令 sudo nano /etc/hosts,回车后输入当前管理员密码(输入过程屏幕完全无显示,属正常现象,输完直接按回车)。
第三步:用方向键将光标移至文件末尾空白行,新起一行,严格按格式输入:IP地址 + 一个或多个空格 + 域名,例如:127.0.0.1 dev.local。注意不能用Tab键分隔,否则某些浏览器或本地服务会解析失败。
第四步:按Control + O保存,回车确认文件名;再按Control + X退出编辑器。
用vim编辑器高效修改并保存退出
vim适合熟悉模式切换逻辑的用户,编辑速度快、不易误删整行,但新手容易卡在“不知道怎么退出”这一步。
方法一:插入→保存→退出标准流程
1. 在终端中执行命令:sudo vim /etc/hosts,回车后输入管理员密码。
GitHub Hosts 更新工具(仅限中国用户),安全更新系统hosts文件,保留原有非GitHub条目,仅替换GitHub相关地址。支持备份恢复和风险提示。用于解决GitHub访问问题。
2. 按i键进入插入模式(左下角出现INSERT字样),在文件末尾添加新条目,格式为:IP地址 域名,例如:192.168.1.50 api.test.internal。
3. 编辑完成后,按Esc键退出插入模式,回到命令模式。
4. 输入 :wq 并回车,即保存并退出;【别忘了冒号,否则:wq会被当成普通字符插入到文件里】。
退出前必须刷新DNS缓存才能生效
改完hosts文件只是写入了映射规则,但系统仍可能从内存缓存中读取旧的DNS解析结果,导致ping或curl仍指向原IP。
在终端中依次执行以下两条命令:
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
执行完毕后,立即用 ping dev.local 测试,若返回127.0.0.1即表示修改已实时生效。










