确认 Hosts 文件修改正确
- 路径:
/etc/hosts(需管理员权限修改)。 - :
# 示例:将域名指向正确的IP(如Google) 142.250.4.100 www.google.com
- 确保格式为
IP 域名,无多余符号。 - 使用
ping www.google.com测试是否解析到指定IP。
- 确保格式为
刷新 DNS 缓存
macOS 不同版本刷新命令不同:
sudo killall -HUP mDNSResponder # 旧版本 sudo killall -HUP mDNSResponder
关闭可能覆盖 Hosts 的代理/VPN
- 系统代理:检查
系统设置 > 网络 > 代理,确保未配置全局代理。 - 科学上网工具:如 ClashX、Surge 等可能覆盖 Hosts 规则,尝试临时关闭或调整规则模式(如切换到
Direct模式)。 - VPN:断开 VPN 连接测试。
检查科学上网工具的 DNS 设置
某些工具强制使用自定义 DNS(如 fake-ip 或远程 DNS),忽略本地 Hosts:
- ClashX:检查配置文件中
dns部分,尝试关闭enhanced-mode或添加fallback-filter.geoip: false。 - Surge:在配置中禁用
skip-proxy或调整 DNS 模式。
排除浏览器/应用缓存问题
- 浏览器:使用无痕模式(如 Chrome 的
Incognito)或清除 DNS 缓存:# Chrome 单独刷新DNS chrome://net-internals/#dns > 点击 "Clear host cache"
- 应用:某些应用(如 Telegram)可能内置 DNS 解析,需重启应用。
验证网络工具冲突
- Little Snitch 等防火墙:检查是否拦截了域名请求。
- 其他网络工具:如 Charles、Fiddler 可能修改流量,临时关闭测试。
终极排查方法
- 终端直接测试:
curl -v https://www.google.com # 查看实际连接的IP和响应 nslookup www.google.com # 检查当前使用的DNS解析结果
- 使用抓包工具:如 Wireshark 或
tcpdump分析流量是否按预期路由。
替代方案
Hosts 仍不生效,可尝试:
- 改用代理工具:直接配置科学上网工具的分流规则(如
Rule模式)。 - 本地 DNS 服务:使用
dnsmasq或unbound更灵活地管理域名解析。
常见误区
- IPv6 问题:某些网络优先使用 IPv6,而 Hosts 只影响 IPv4,可临时禁用 IPv6:
sudo networksetup -setv6off Wi-Fi
- Hosts 规则被覆盖:科学上网工具可能动态修改 Hosts,需在工具中禁用此功能。


