电脑无法修改 hosts 文件是因系统路径受保护导致权限拒绝,解决方法有三:一为桌面中转编辑覆盖;二为管理员 powershell 直接写入;三为命令行强制获取所有权并赋权。

电脑无法修改 hosts 文件,通常表现为保存时弹出“权限被拒绝”“访问被拒绝”或“需要管理员权限”提示,根本原因是 Windows 将该文件置于受保护系统路径(C:\Windows\System32\drivers\etc\),默认禁止普通用户写入——哪怕你用记事本双击打开、编辑后点击“保存”,也会失败。
方法一:桌面中转编辑再覆盖(零命令行,最稳妥)
这一步操作起来很简单,直接把文件拖进去就行。它绕过系统目录的实时权限校验,全程在桌面完成编辑,最后一步才覆盖原文件,成功率接近100%。
第一步:在文件资源管理器地址栏粘贴 C:\Windows\System32\drivers\etc,按回车进入该文件夹。
第二步:右键单击无扩展名的 hosts 文件 → 选择“复制” → 切换到桌面 → 右键“粘贴”,得到一份桌面副本。
第三步:右键桌面的 hosts 文件 → “用记事本打开” → 在末尾新增一行,例如 127.0.0.1 example.com(注意:IP 和域名之间必须是英文空格,不能用 Tab 或中文符号)。
第四步:点击记事本【文件】→【保存】,关闭记事本。
第五步:将桌面已保存的 hosts 文件再次复制 → 回到 C:\Windows\System32\drivers\etc 文件夹 → 弹出“是否替换目标中的文件?”提示时,点击“是”。【若弹出管理员权限提示,务必点“继续”而非“取消”】
方法二:PowerShell 直接写入(适合批量或脚本场景)
当桌面覆盖法因安全软件拦截失败时,PowerShell 可以跳过图形界面,以 SYSTEM 级别直接写入磁盘,不依赖文件属性或编辑器状态。
GitHub Hosts 更新工具(仅限中国用户),安全更新系统hosts文件,保留原有非GitHub条目,仅替换GitHub相关地址。支持备份恢复和风险提示。用于解决GitHub访问问题。
以管理员身份运行 PowerShell(右键开始按钮 → “Windows Terminal(管理员)”)。
执行以下命令追加一条规则:Add-Content -Path "$env:windir\System32\drivers\etc\hosts" -Value "`r`n192.168.1.100 dev.local"(`r`n 是必需的换行符,否则新行会紧贴上一行末尾,导致解析失败)。
验证是否写入成功:运行 Get-Content "$env:windir\System32\drivers\etc\hosts",确认输出末尾包含你刚添加的内容。
方法三:强制获取所有权并赋权(底层权限修复)
如果前两种方法都失败,说明当前账户对 hosts 文件完全无控制权,需用命令行接管所有权并重置 ACL。
以管理员身份运行命令提示符或 PowerShell。
依次执行两行命令(每行输完回车):takeown /f C:\Windows\System32\drivers\etc\hosts → icacls C:\Windows\System32\drivers\etc\hosts /grant administrators:F。
看到“成功处理”字样即表示权限已更新。此时再用管理员记事本打开并保存,就不会再报权限错误。










