无法保存Hosts文件修改是因系统权限限制,需以管理员身份运行记事本、用PowerShell强制写入、临时关闭Windows Defender实时保护,或修改文件安全属性赋予完全控制权。

如果您尝试修改Windows系统中的Hosts文件,但无法保存更改或提示“访问被拒绝”,则可能是由于系统权限限制导致。以下是解决此问题的步骤:
一、以管理员身份运行记事本编辑Hosts文件
Hosts文件位于系统受保护目录下,默认仅允许管理员写入。通过以管理员身份启动文本编辑器,可获得对文件的完整写入权限。
1、在开始菜单搜索栏中输入“记事本”,右键点击“记事本”应用,选择“以管理员身份运行”。
2、在记事本中点击“文件”→“打开”,将下方“文件类型”改为“所有文件”。地址栏中直接粘贴路径:C:\Windows\System32\drivers\etc\hosts,回车确认。
3、找到并选中hosts文件,点击“打开”按钮。
4、在文件末尾添加所需映射条目(例如:127.0.0.1 example.com),完成后点击“文件”→“另存为”。
5、在“另存为”对话框中,确保“保存类型”为“所有文件”,“编码”为UTF-8,再次确认路径为原路径:C:\Windows\System32\drivers\etc\hosts,点击“保存”。
二、通过PowerShell绕过UAC限制强制写入
当图形界面编辑器仍提示权限错误时,可使用PowerShell以SYSTEM级别执行覆盖操作,避免交互式权限弹窗干扰。
1、在开始菜单搜索“PowerShell”,右键选择“以管理员身份运行”。
2、执行命令清空当前hosts内容并重写:Set-Content -Path "$env:windir\System32\drivers\etc\hosts" -Value "127.0.0.1 localhost`r`n::1 localhost"(反引号+rn表示换行)。
3、如需追加自定义条目,运行:Add-Content -Path "$env:windir\System32\drivers\etc\hosts" -Value "192.168.1.100 mydev.local"。
4、验证是否写入成功:Get-Content "$env:windir\System32\drivers\etc\hosts",检查输出中是否包含新条目。
三、临时关闭Windows Defender实时保护
部分Windows安全策略会拦截对etc目录下敏感文件的修改行为,尤其在Win11 22H2及更高版本中更为严格。临时禁用实时保护可排除该干扰。
1、打开“Windows 安全中心”→“病毒和威胁防护”→“管理设置”。
2、将“实时保护”开关切换为“关”。注意:操作完成后务必重新开启该选项。
3、返回记事本或PowerShell,重复前述任一编辑流程。
4、编辑完成后,立即返回安全中心将“实时保护”恢复为“开”状态。
四、修改Hosts文件所在目录的安全属性
若频繁需要编辑Hosts文件,可永久赋予当前用户对该文件的完全控制权限,避免每次均需提权。
1、进入文件夹:C:\Windows\System32\drivers\etc\,右键点击hosts文件,选择“属性”→“安全”选项卡。
2、点击“高级”,在高级安全设置窗口中点击“禁用继承”,选择“从此对象中删除所有已继承的权限”。
3、点击“添加”→“选择主体”,输入当前用户名(如DESKTOP-XXX\YourName),点击“检查名称”确认后确定。
4、在“权限条目”中勾选“完全控制”,点击“确定”保存设置。
5、关闭所有窗口,重启记事本即可直接编辑并保存hosts文件。










