17370845950

Mac如何修改Hosts文件?(本地开发与屏蔽网站)
Mac修改Hosts文件需用sudo权限编辑/etc/hosts,支持本地域名映射(如127.0.0.1 mysite.test)和屏蔽网站(如0.0.0.0 doubleclick.net),保存后需刷新DNS缓存:sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder。

Mac修改Hosts文件很简单,只需用终端打开并编辑系统自带的/etc/hosts文件即可。它常用于本地开发时映射域名到本地服务(比如把dev.example.com指向127.0.0.1),或临时屏蔽某些网站(如广告、社交平台)。

用终端快速编辑Hosts文件

Mac默认用vim,但如果你不熟悉,可用更友好的nano。打开终端,输入以下命令:

  • sudo nano /etc/hosts —— 推荐新手使用,界面直观,按Ctrl+O保存,Ctrl+X退出
  • sudo vim /etc/hosts —— 熟悉vim的用户可选,进入后按i编辑,Esc后输入:wq保存退出

输入密码后就能编辑了。注意:必须加sudo,否则会提示权限不足。

添加本地开发用的域名映射

比如你在本地用MAMP或Docker跑了一个WordPress站点,想通过mysite.test访问,就在hosts末尾加一行:

  • 127.0.0.1 mysite.test
  • 支持多个域名写在同一行:127.0.0.1 dev.api.com staging.app.io
  • 若用IPv6,可写:::1 mysite.test

改完保存,无需重启系统,但浏览器可能缓存DNS,建议清空DNS缓存:sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder(macOS Monterey及更新版本适用)。

临时屏蔽网站(广告/干扰内容)

把目标域名指向无效地址,就能让它打不开。常用做法是映射到0.0.0.0127.0.0.1

  • 0.0.0.0 doubleclick.net —— 屏蔽谷歌广告追踪
  • 127.0.0.1 www.facebook.com —— 让Facebook返回本地空白页(比0.0.0.0更易识别是否生效)
  • 注释掉某行只需在开头加#,例如:# 127.0.0.1 mysite.test

验证和排错小技巧

改完别急着测试网页,先确认是否生效:

  • 在终端运行:ping -c 1 mysite.test,看是否返回127.0.0.1
  • nslookup mysite.testdig mysite.test +short查解析结果
  • 如果没反应,检查是否输错IP或域名、有无多余空格、是否忘了保存
  • 部分浏览器(如Chrome)有自己DNS缓存,可访问chrome://net-internals/#dns点击“Clear host cache”

基本上就这些。Hosts文件改动轻量、即时生效,适合日常开发和专注场景,不复杂但容易忽略刷新缓存这一步。