以下是分步骤的排查和解决方法:
一、检查文件编码与权限问题
- 确保使用ANSI编码
hosts文件必须保存为ANSI编码,否则系统无法识别。用记事本编辑时,保存界面选择「另存为」,编码选择「ANSI」。 - 以管理员权限编辑文件
- 右键点击记事本,选择「以管理员身份运行」再打开hosts文件(路径:
C:\Windows\System32\drivers\etc\hosts
)。 - 若无法直接修改,可尝试将hosts文件复制到桌面编辑后,再替换原文件(需管理员权限)。
- 关闭文件只读属性
右键hosts文件 → 属性 → 取消勾选「只读」→ 应用。
二、处理DNS缓存与网络配置
- 强制刷新DNS缓存
管理员身份运行CMD,依次执行:
ipconfig /release # 释放当前IP配置
ipconfig /renew # 重新获取IP
ipconfig /flushdns # 清除DNS缓存
``` ```
此操作可跳过重启,立即生效[5]()[6]()[9]()。
- 检查hosts条目格式
确保格式为IP地址 域名
(例如127.0.0.1 example.com
),使用制表符或空格分隔,且无多余符号(如#注释)。
提示:若测试本地服务,建议同时添加IPv6条目::1 example.com
。
三、排查软件干扰与系统设置
- 禁用安全软件或防火墙
某些安全软件(如360、火绒)可能重置hosts文件。修改后建议将hosts文件设为「只读」防止覆盖。 - 验证网络服务状态
- 检查「DNS Client」服务是否运行:
Win+R输入services.msc
→ 找到「DNS Client」→ 确保状态为「正在运行」。 - 若使用VPN或代理,需关闭后测试。
四、其他可能性
- 检查hosts文件路径与重复条目
- 确认修改的是正确路径下的hosts文件。
- 删除重复或冲突的域名映射。
- 重启网络设备与系统
若上述方法无效,尝试重启路由器或电脑,确保所有配置生效。
五、验证是否生效
执行 ping 域名
或浏览器访问测试。若仍不生效,可通过以下命令查看DNS解析结果:
nslookup 域名
若返回IP与hosts中一致,则配置成功;否则需重新检查步骤。
总结流程
- 用管理员权限编辑hosts → 保存为ANSI编码 → 关闭只读。
- 刷新DNS缓存 → 检查条目格式 → 禁用安全软件干扰。
- 验证服务与网络 → 最终重启设备。
通过以上步骤,90%以上的hosts不生效问题可解决。若仍存在问题,可能是系统权限或文件损坏导致,建议备份后重建hosts文件。