下面是一份“傻瓜式”在 macOS 下用 vi
编辑 /etc/hosts
文件的完整流程。按部就班照做即可:
0. 先了解:什么是 /etc/hosts
- 它是系统级「电话簿」,把域名(如
example.com
)映射到 IP(如127.0.0.1
)。 - 修改后能「本地劫持」或屏蔽站点;出错可能导致无法上网,所以务必备份。
1. 打开终端
⌘ + Space
→ 输入 Terminal → 回车。
2. 备份原文件(强烈推荐)
sudo cp /etc/hosts /etc/hosts.bak
- 系统会让你输入当前登录用户的密码(输入时不会显示,直接敲完回车)。
3. 用 vi
打开 /etc/hosts
sudo vi /etc/hosts
用
sudo
才有写入权限;再次输入密码。
4. vi
最少必备的三个键
想做什么 | 按什么 |
---|---|
开始编辑 | i(insert) |
结束编辑 | Esc |
保存并退出 | :wq回车 |
只记这 3 个就足够完成任务。
如果输错把握不好,随时Esc
→:q!
回车即可「不保存强退」。
5. 实操示范
- 进入插入模式
- 在文件末尾或指定行按 i。
- 输入你的映射(示例):
127.0.0.1 test.local 192.168.1.12 intranet.mycompany.com
- 结束编辑:按 Esc。
- 保存退出:输入 :wq 回车。完成!
6. 刷新 DNS 缓存(让修改立即生效)
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
macOS 13 及以后只需第一条,但两条一起跑没坏处。
7. 验证
ping test.local
应当看到跳到你刚配置的 IP。
8. 出现问题怎么办?
- 撤回修改
sudo mv /etc/hosts.bak /etc/hosts
- 再次刷新 DNS(同第 6 步)。
- 仍不行?重启电脑。
9. 常见问答
问题 | 解答 |
---|---|
哪些行可以删? | 任何你加的行都行,系统默认的(::1 localhost 等)别动。 |
空行或缩进有影响吗? | 没影响,主机名与 IP 至少一个空格/Tab 分隔即可。 |
不会用 vi 怎么办? |
可以 sudo nano /etc/hosts ,操作和记事本差不多。 |
就这么简单!照着做,你已学会在 macOS 下用 vi
修改 hosts
。祝顺利 🎉
评论区