全部教程如何修改 hosts 文件 - Windows 与 macOS 完整指南

如何修改 hosts 文件 - Windows 与 macOS 完整指南

我是 OpenClaw 作者 Quentin。开发拼车工具这几年,几乎每个新用户都跳不过这一步:要么调本地 API,要么把某个端点临时指到调试服务器——解法都是改 hosts。这篇是 OpenClaw 团队自己用、也推荐给拼车成员的版本。

想把 Claude Code 直接接上拼车?先跑:

curl -fsSL https://cp.bizq.net/setup.sh | bash -s -- claude-max-20x

hosts 是什么

hosts 是操作系统层的一张静态域名表,纯文本,每行 IP 域名。系统在做 DNS 解析之前先读它——命中就用文件里的 IP,没命中才走外部 DNS。

常见用途:

  • 本地开发:把 api.mysite.com 钉到 127.0.0.1
  • 绕开问题 DNS:把域名暂时指到一台已知正常的服务器
  • 拦截广告:把广告域指到 0.0.0.0
  • 多环境调试:staging / pre-prod / prod 同名域名各指各的 IP

macOS:终端命令行(推荐)

# 1. 备份
sudo cp /etc/hosts /etc/hosts.backup
 
# 2. 编辑
sudo nano /etc/hosts        # 或 sudo vim /etc/hosts

末尾追加映射,IP 与域名之间用空格或 Tab:

127.0.0.1       test.local
192.168.1.100   myserver.local
127.0.0.1       ads.example.com

保存退出:nanoCtrl+XY → 回车;vimEsc:wq → 回车。

最后必须刷 DNS 缓存,否则不生效:

sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

验证:

cat /etc/hosts
ping test.local

如果懒得开终端,也可以在 Finder 按 Command+Shift+G/etc/hosts,复制到桌面改完拖回去——但每次都要复制权限提示也烦,不推荐长期用。


Windows:管理员权限是绕不过去的

文件路径固定:

C:\Windows\System32\drivers\etc\hosts

这个目录普通用户没写权限,所以必须以管理员身份启动编辑器。

用记事本

  1. 开始菜单搜 notepad右键 → 以管理员身份运行(漏了这一步所有改动都白做)
  2. 文件 → 打开,导航到 C:\Windows\System32\drivers\etc\
  3. 文件类型切到 所有文件 (*.*),选 hosts
  4. 末尾加映射 → Ctrl+S
  5. 管理员命令提示符里刷 DNS:
ipconfig /flushdns

用 PowerShell(管理员)

# 备份
Copy-Item C:\Windows\System32\drivers\etc\hosts C:\Windows\System32\drivers\etc\hosts.backup
 
# 编辑
notepad C:\Windows\System32\drivers\etc\hosts
 
# 刷 DNS
ipconfig /flushdns

验证:

type C:\Windows\System32\drivers\etc\hosts
ping test.local

nslookup 不一定显示 hosts 命中(它会绕过 hosts),以 ping 为准。


几个真实场景

本地开发:所有子域指到本机

127.0.0.1   localhost
127.0.0.1   dev.mysite.com
127.0.0.1   api.mysite.com

域级广告拦截

0.0.0.0   ads.google.com
0.0.0.0   doubleclick.net
0.0.0.0   googleadservices.com

0.0.0.0127.0.0.1 更干脆——浏览器拿到这个 IP 立即放弃连接,不会留超时。

指向多套测试环境

192.168.1.100   staging.mysite.com
192.168.1.101   testing.mysite.com

故障排除

改了不生效——按概率从高到低排查:

  1. 没刷 DNS 缓存
  2. Windows 上没开「管理员身份」运行编辑器
  3. 浏览器 DoH(Chrome / Firefox 现在默认开启)绕过了系统解析——设置里关掉
  4. 行末换行符乱(\r\n vs \n),编辑器统一一下

权限不足——macOS 忘了 sudo;Windows 检查文件属性是不是「只读」。

语法错误——每行只有 IP 域名,注释以 # 开头,行末别有不可见字符。

快速恢复

# macOS
sudo cp /etc/hosts.backup /etc/hosts
sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder
:: Windows 管理员
copy C:\Windows\System32\drivers\etc\hosts.backup C:\Windows\System32\drivers\etc\hosts
ipconfig /flushdns

高级技巧

通配符:原生 hosts 不支持通配符,写 *.dev.local 不会生效。需要通配匹配请上本地 DNS(dnsmasq、Windows 的 Acrylic DNS Proxy)。

注释分组

# === 开发 ===
127.0.0.1   dev.mysite.com

# === 测试 ===
192.168.1.100   test.mysite.com

# === 拦截广告 ===
0.0.0.0   ads.example.com

临时禁用某条:行首加 #,比删掉再加回来稳。

安全提醒hosts 历史上是钓鱼攻击的常见入口(把银行域指到攻击者服务器)。基本卫生:改之前必备份;定期扫一眼有没有自己不认识的条目;写注释告诉以后的自己这一行为啥加进来。


立即开始

hosts 是最便宜的网络调试工具,五分钟就能搞定一个 DNS 问题。OpenClaw 拼车成员遇到 api.anthropic.com 解析不通时,我们也常先建议手动钉一下 IP 测一下,再决定走 IPv6 还是切 DNS。

要把 Claude Code 一口气接上拼车?这一行:

curl -fsSL https://cp.bizq.net/setup.sh | bash -s -- claude-max-20x

完整一键流程在 cp.bizq.net/setup


相关文章