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 常把它列为受保护对象,改动会被回滚或告警,排查时先看防护日志。