hosts修改后仍访问旧IP是因DNS缓存未刷新,需以管理员身份运行cmd执行ipconfig /flushdns,并彻底关闭浏览器重开;同时确认hosts文件已用管理员权限正确保存且格式无误。

Windows系统修改hosts文件后,浏览器或程序仍访问旧IP地址,是因为系统缓存了之前的DNS解析结果,必须手动清除才能让新映射立即起作用。
确认hosts修改已真实写入
打开管理员权限的记事本,按路径 C:\Windows\System32\drivers\etc\ 手动打开 hosts 文件,检查你添加的那行内容是否确实存在、格式正确(如 127.0.0.1 dev.local),且末尾没有多余空格或中文符号。
如果文件打开后是空白,或看不到你刚写的条目,说明修改根本没保存成功——常见原因是未以管理员身份运行编辑器,或保存时被自动加了“.txt”后缀。此时请先解决写入问题,再进行后续操作。
刷新DNS缓存使hosts生效
这一步必须用管理员权限执行,否则命令会被系统拒绝。
第一步:按下 Win + S,输入 cmd → 在搜索结果中右键“命令提示符” → 选择“以管理员身份运行”。
第二步:在弹出的黑色窗口中,直接输入以下命令并回车:
Windows 命令行编码与兼容规范。涵盖 GBK/UTF-8 编码、PowerShell/pwsh 互操作、Python/Node.js、Git 配置及代码生成规则。适用于 Windows 10/11 + MSYS2/Git Bash 环境下的所有命令行操作。
ipconfig /flushdns
注意:斜杠是英文半角 /,不是反斜杠 \,也不是中文顿号。输错会导致命令无法识别。
第三步:看到提示“已成功刷新 DNS 解析缓存”即表示完成。若显示“拒绝访问”,说明当前窗口不是管理员权限,请关闭重开。
验证是否真正生效
方法一:在命令提示符中执行 ping 你的域名(例如 ping dev.local),观察返回的IP是否为你在hosts里指定的那个。
方法二:使用 nslookup 你的域名,它会显示解析来源;如果返回的是你设置的IP且备注为“非权威”,说明hosts已接管解析。
浏览器需彻底关闭所有窗口(包括后台进程)再重新打开,否则可能仍走旧缓存。Chrome和Edge尤其容易复用已有标签页的DNS连接,仅刷新页面无效。

















