hosts 文件排查

本机静态解析优先于 DNS:排障时确认 hosts 未被改乱,也可用它做临时解析验证。

Windows 运维速查系统更新于 2026-10-13

hosts 文件是什么

hosts 是本机的静态名称解析表,优先级高于 DNS 查询。Windows 会把 C:\Windows\System32\drivers\etc\hosts 里的记录直接当作解析结果,命中就不再问 DNS。它本来是给你做本地固定映射的,现实中更多被用来做域名拦截、灰度切流,也常被恶意软件劫持成“某些网站只有这台机器打不开”的元凶。

基本信息

文件路径C:\Windows\System32\drivers\etc\hosts(无扩展名)
格式IP 域名 [别名],行内 # 起注释作用
生效时机立即生效,无需重启;解析器有短时缓存
默认内容只有注释行,全部被 # 注释掉
编辑权限需要管理员;保存须保持无扩展名
相关缓存ipconfig /flushdns 清的是 DNS 客户端缓存,不动 hosts

典型使用场景

  • 临时把域名指向测试机,做上线前验证或灰度切流
  • 迁移期间让个别客户端提前解析到新 IP
  • 封锁指定域名:写成 0.0.0.0 或 127.0.0.1
  • 排查“别人能访问、只有这台机器不行”的解析差异问题
  • 绕过内网 DNS 故障做临时应急解析

常用示例

常用示例
type C:\Windows\System32\drivers\etc\hosts        # 直接查看当前映射
notepad C:\Windows\System32\drivers\etc\hosts      # 用管理员身份编辑(保留文件名)
copy C:\Windows\System32\drivers\etc\hosts D:\hosts.bak   # 改动前先备份
ipconfig /displaydns | findstr /i "example.com"      # 看解析缓存里有没有残留
ipconfig /flushdns                                    # 清客户端缓存后重测
ping example.com                                      # 验证是否按 hosts 的 IP 解析

排查要点

现象hosts 侧检查点结论方向
只有一台机器解析异常是否有手工加的记录先删注释外记录再复测
域名指向 0.0.0.0常为广告拦截或恶意改写确认是否符合预期策略
改了不生效是否被安全软件锁定或只读检查文件属性与防护策略
回环地址指向本机127.0.0.1 映射真实域名会让服务连到自己,表现为连接被拒
hosts 只影响本机,且始终优先于 DNS:做解析排障时把它放在 DNS 检查之前,比逐级查 DNS 服务器快得多。
该文件没有扩展名,用记事本另存时若被加上 .txt 就等于没改;杀毒软件与 EDR 常把它列为受保护对象,改动会被回滚或告警,排查时先看防护日志。

易错点

  • 把文件另存为 hosts.txt 后以为生效了,实际原文件未变,是最常见的无效改动
  • 编辑时用带 BOM 的 UTF-8 或写入中文域名可能解析异常,建议纯 ASCII 保存
  • hosts 记录会盖住 DNS 结果,做域名迁移验证后忘记删掉,会在几周后突然出现“解析错了”的故障
  • 把真实业务域名指到 127.0.0.1 会让本机应用连到自己,表现为连接被拒绝而非 DNS 失败,容易误判方向

数据来源与参考

  • Microsoft Learn:TCP/IP 主机文件说明

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌