hosts 文件配置异常一般会出现网页打不开 域名解析错误 软件无法联网 部分网站跳转异常这类现象,本质就是 hosts 里面的 IP 和域名映射记录出错 格式错误 被篡改 编码不对或者权限异常,hosts 是系统本地域名解析文件,优先级高于 DNS 服务器,只要里面记录有错误,系统就会优先读取错误映射,绕过正常 DNS 解析。排查的时候要先确认 hosts 文件位置,再检查文件内容格式,区分是用户手动修改出错,还是安全软件 代理工具 病毒篡改,之后可以选择备份修复 恢复默认 重置解析,最后验证网络是否恢复正常,整个流程不需要复杂专业知识,普通电脑用户也可以按步骤操作。
hosts 文件基础说明
文件默认路径
Windows C 盘 Windows System32 drivers etc hosts
macOS /etc/hosts
Linux /etc/hosts
核心作用 手动建立 IP 地址和域名对应关系,优先于公共 DNS 生效
正常默认内容 一般只保留本地回环地址 127.0.0.1 localhost,其余自定义记录如果不需要就应当清空或者注释
异常常见成因清单
1 手动编辑 hosts 的时候,IP 和域名之间空格数量错误,或者多写符号,造成解析失败
2 代理加速器 翻墙工具 广告拦截软件自动写入 hosts,软件卸载之后残留错误记录
3 恶意程序篡改 hosts,把常用网站指向错误 IP,造成劫持
4 文件编码错误,保存成带 BOM 的编码,系统无法识别 hosts 内容
5 权限不足,修改之后没有真正保存成功,看起来已经改完,实际还是旧配置
6 注释符号错误,本应该用 注释,忘记加 ,无效记录变成生效记录
分步排查修复流程
第一步 打开 hosts 文件
Windows 右键记事本 选择以管理员身份运行,再从记事本打开上述路径的 hosts 文件
macOS Linux 终端输入 sudo 编辑器命令打开 hosts
第二步 检查内容格式
IP 地址和域名之间必须是空格或者 tab,一行只写一条记录
不要添加多余逗号 引号 中文标点
第三步 备份原有 hosts
把当前 hosts 复制一份改名 hosts 备份,防止修复之后需要还原原来自定义记录
第四步 选择修复方式
方案 A 恢复系统默认 hosts
清空所有自定义异常记录,只保留 127.0.0.1
方案 B 修正错误条目
如果确实需要保留自定义映射,只修改错误 IP,保留有效记录
第五步 保存文件
保存编码选择 ANSI 或者 UTF8 无 BOM,不要选 UTF8 带 BOM
第六步 刷新解析缓存
Windows 打开命令提示符 输入 ipconfig /flushdns
macOS 终端输入 sudo dscacheutil flushcache
Linux 根据系统执行对应 dns 缓存刷新命令
第七步 测试验证
打开浏览器访问目标域名,也可以用 ping 命令测试域名解析得到的 IP 是否正确
异常类型对照表
| 异常类型 | 典型现象 | 处理办法 |
|---|---|---|
| 格式书写错误 | 系统识别 hosts 失败,解析报错 | 修正空格标点,一行一条记录 |
| 恶意劫持 | 网站跳转到陌生页面 | 清空恶意记录,杀毒扫描 |
| 软件残留 | 卸载加速器之后依旧无法访问网站 | 删除软件写入的 hosts 条目 |
| 编码错误 | 修改保存之后配置不生效 | 另存为 UTF8 无 BOM |
| 权限问题 | 保存提示拒绝访问 | 使用管理员权限打开编辑 |
进阶排查要点
如果修复 hosts 之后故障依旧,要区分是不是并不是 hosts 本身问题,而是 DNS 网卡 防火墙叠加故障
部分安全软件会锁定 hosts 文件,自动恢复篡改内容,修复之后要检查安全软件保护规则
企业内网自定义 hosts 不要随意全部清空,清空会导致内部业务域名失效,修复前一定要备份
【常见问题】
问题 1 hosts 文件配置异常 为什么修改之后保存提示拒绝访问
回答 1 hosts 文件配置异常遇到保存拒绝访问,是因为 hosts 属于系统保护文件,普通权限记事本没有写入权限,需要用管理员身份打开编辑器,再编辑 hosts 文件配置异常对应的内容
问题 2 hosts 文件配置异常 恢复默认之后内网业务打不开怎么办
回答 1 hosts 文件配置异常恢复默认会清除全部自定义映射,企业内网依赖 hosts 解析内部域名就会失效,这种情况不能直接清空,应该只删除错误条目,保留内网正常记录,解决 hosts 文件配置异常
问题 3 hosts 文件配置异常 保存成 UTF8 带 BOM 会不会失效
回答 3 hosts 文件配置异常很常见的原因就是编码带 BOM,系统读取 hosts 会识别失败,修改 hosts 的时候要选择 UTF8 无 BOM 编码保存,才能让 hosts 文件配置正常生效
问题 4 hosts 文件配置异常 修复完成还需要刷新 DNS 缓存吗
回答 4 hosts 文件配置异常修复之后建议刷新 DNS 缓存,系统会缓存旧解析结果,不刷新有可能依旧读取旧记录,执行 flushdns 之后才能让新的 hosts 配置立刻生效
【免责申明】
本内容为通用电脑故障排查参考,不同 Windows macOS Linux 版本细节存在差异,企业内网环境修改 hosts 可能违反内部安全策略,操作前确认授权,因错误修改 hosts 造成业务中断风险由操作者自行承担。


