直接修改 /etc/hosts 文件可强制 macos 将指定域名解析为自定义 ip,需配合刷新 dns 缓存(dscacheutil 和 killall mdnsresponder)才生效,支持 nano 编辑、echo 追加或图形界面操作。

直接改 /etc/hosts 文件就能让 macOS 绕过 DNS,强制把某个域名指向你指定的 IP。它不依赖网络设置,对所有应用生效(极少数沙盒或容器环境除外),改完保存后还需刷新系统 DNS 缓存才真正起效。
用终端 nano 快速编辑
nano 是 macOS 自带、最友好的命令行编辑器,适合大多数用户: - 打开终端,输入:sudo nano /etc/hosts
- 输入管理员密码(输入时无显示,输完直接回车) - 光标移到文件末尾,新增一行,格式为:
127.0.0.1 test.local
(IP 和域名之间至少一个空格,不能用中文或特殊符号) - 按 Control + O 保存 → 回车确认 → Control + X 退出
用 echo 命令追加(避免误删原内容)
适合只想加一两行、不想打开编辑器的场景: - 在终端运行:echo "127.0.0.1 api.dev" | sudo tee -a /etc/hosts - 这条命令会把新行追加到文件末尾,不会覆盖已有内容 - 后续必须刷新缓存,否则新规则不参与解析
改完必须刷新 DNS 缓存
macOS 会缓存 DNS 结果,不刷新就看不到效果: - 运行这两条命令(缺一不可):sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder - 验证是否生效:在终端输入 ping test.local,看返回的 IP 是否是你设的











