hosts 文件异常是 Windows 系统很常见的网络类故障,hosts 是本地域名映射文件,优先级高于 DNS 服务器,一旦这个文件内容错误 权限异常 编码错误 被安全软件锁定,就会出现网页打不开 域名解析错乱 安全软件提示 hosts 文件异常,很多用户只知道直接修改内容,但是忽略权限 后缀 编码 自动还原这些隐藏问题,导致修复之后依旧报错,hosts 默认路径是 C 盘 WindowsSystem32driversetc,正常 hosts 是无后缀纯文本文件,每行标准格式为 IP 地址加空格加域名,井号开头属于注释行,排查 hosts 文件异常要从文件本身 写入权限 第三方拦截 系统缓存 系统文件损坏这几个维度依次检查,把每一类诱因都排查到位,就可以稳定解决大部分 hosts 文件异常问题。
一 hosts 文件异常常见诱因
1 内容语法错误 存在全角空格 无效 IP 重复域名 多余乱码字符,解析器识别失败,判定 hosts 文件异常
2 文件后缀错误 真实文件名变成 hosts.txt,系统不会加载这个文件,持续提示 hosts 文件异常
3 权限不足 普通账户没有写入权限,修改保存失败,或者表面保存成功实际没有写入
4 编码不匹配 保存为 UTF8 带 BOM 编码,Windows 解析 hosts 会出错,标准推荐 ANSI 或者 UTF8 无 BOM
5 安全软件防护锁定 杀毒软件 安全卫士开启 hosts 保护,修改之后自动还原,反复提示 hosts 文件异常
6 DNS 缓存残留 已经修改 hosts,但是系统还在读取旧解析缓存,看起来像 hosts 文件异常没有修复成功
7 恶意篡改 病毒或者恶意软件修改 hosts,把正常网站指向错误 IP,造成劫持
8 组策略管控 公司域电脑由域策略强制管控 hosts,个人修改会被覆盖
二 分步修复操作
第一步 定位 hosts 文件并且显示扩展名
打开此电脑,进入路径 C Windows System32 drivers etc
在顶部查看选项,勾选文件扩展名,检查文件名,如果是 hosts.txt,直接重命名,删除 txt 后缀,保留名称 hosts
第二步 备份原始 hosts 文件
右键 hosts 文件,复制一份备份到桌面,后续操作出错可以直接还原,这个步骤是修复 hosts 文件异常的保险操作
第三步 获取 hosts 文件管理员权限
右键 hosts,打开属性,切换安全标签,点高级,修改所有者为当前管理员账户,给当前用户添加完全控制权限,解决保存拒绝访问的问题
第四步 管理员记事本编辑 hosts
搜索记事本,右键选择以管理员身份运行,通过记事本打开 hosts,清理乱码错误条目,确认每行格式规范,保存的时候选择 ANSI 或者 UTF8 无 BOM 编码
第五步 临时关闭安全软件 hosts 防护
打开安全软件,找到系统防护 网络防护模块,关闭 hosts 锁定防护,防止修改之后自动回滚,完成修改后可以按需重新开启防护
第六步 刷新 DNS 解析缓存
管理员打开命令提示符,执行 ipconfig /flushdns,清空旧解析缓存,让新的 hosts 映射生效
第七步 系统底层修复
如果前面操作之后 hosts 文件异常依旧存在,管理员命令提示符依次运行 sfc /scannow 和 DISM 映像修复命令,修复损坏的系统组件,完成之后重启电脑
三 故障现象对照表格
| 故障现象 | 主要诱因 | 处理方案 |
|---|---|---|
| 修改保存提示拒绝访问 | 权限不足 | 获取管理员完全控制权限 |
| 修改重启自动变回旧内容 | 安全软件自动还原 | 关闭 hosts 防护 |
| 系统不读取新映射 | 文件名 hosts.txt | 删除 txt 后缀 |
| 内容正确仍然报错 | UTF8 带 BOM 编码 | 改成 ANSI 或者 UTF8 无 BOM |
| 解析仍旧指向旧 IP | DNS 缓存未清空 | 执行 flushdns 刷新缓存 |
| 所有操作无效 | 系统文件损坏 | sfc 和 DISM 修复 |
| 网站被跳转错误地址 | 恶意篡改劫持 | 清理恶意条目查杀病毒 |
四 补充深度知识点
hosts 文件不需要扩展名,不能设置成只读属性,如果文件勾选只读,也会造成无法修改,出现 hosts 文件异常相关报错。
hosts 里面井号开头全部是注释,注释行不会参与域名解析,不要把 IP 和域名写在注释行里面,很多新手误把有效映射写在井号后面,最后解析不生效,误以为 hosts 文件异常。
Mac 系统 hosts 路径和 Windows 不一样,在 etc 目录下,同样会出现 hosts 文件异常,但是本文排查方案主要针对 Windows 系统。
【常见问题】
问题 1 hosts 文件异常,为什么修改完保存之后重启又恢复原来内容
回答 1 hosts 文件异常这种自动还原,一般是安全软件开启 hosts 防护,后台自动回滚 hosts 内容,想要解决 hosts 文件异常,需要临时关闭 hosts 防护之后再编辑 hosts。
问题 2 hosts 文件异常,hosts.txt 这个文件会引发报错吗
回答 1 hosts 文件异常会由 hosts.txt 这个错误后缀文件引起,系统识别不到真正 hosts,持续判定 hosts 文件异常,需要重命名去掉 txt 后缀。
问题 3 hosts 文件异常,UTF8 带 BOM 编码会造成 hosts 文件异常吗
回答 1 hosts 文件异常和编码错误有关,UTF8 带 BOM 会导致 Windows 解析 hosts 失败,就算内容正确也会提示 hosts 文件异常,保存建议使用 ANSI 或者 UTF8 无 BOM。
问题 4 hosts 文件异常,刷新 DNS 缓存是不是必须操作
回答 1 hosts 文件异常修复之后,旧解析缓存还会保留,会误以为 hosts 文件异常没有修好,执行 ipconfig /flushdns 刷新缓存,是修复 hosts 文件异常重要配套步骤。
【免责申明】
本内容仅作为 Windows 系统故障排查技术参考,修改 hosts 会改变本地域名解析,企业域环境操作需要遵守单位管理规定,操作前务必备份原始 hosts 文件,特殊定制系统不一定适用全部方案,本内容不保证所有故障均可修复。


