Win11如何禁止第三方软件修改系统Hosts文件

作者:技术拾光时间:2026-07-16 20:04:02浏览:590

通过剥夺写入权限、设置只读与隐藏属性,并利用PowerShell命令固化保护,可有效阻止第三方软件在Windows11中篡改Hosts文件,防止开发环境失效、DNS劫持及隐私泄露。该措施操作简便且效果持久,能长期稳固系统安全,避免因Hosts被篡改导致的网络风险。

在 Windows 11 系统中,Hosts 文件被第三方软件偷偷改写的情况并不少见。广告拦截工具、优化大师,甚至某些恶意浏览器插件,都可能未经用户同意就擅自修改该文件。带来的后果包括本地开发环境突然失效、DNS 被劫持、隐私泄露——这些并非危言耸听。要从源头切断非法写入通道,最有效的方法就是直接剥夺权限。

Win11如何禁止第三方软件修改系统Hosts文件

锁定 hosts 文件写入权限

这一步骤的目标非常明确:直接剥夺除 TrustedInstaller 和管理员之外所有进程的修改能力。这是目前防篡改最有效的手段,没有之一。

首先打开文件资源管理器,在地址栏粘贴 C:\Windows\System32\drivers\etc,然后按回车进入目录。

找到 hosts 文件,右键点击 → “属性” → 切换到“安全”选项卡 → 点击“高级”按钮。

在“高级安全设置”窗口中,点击“禁用继承”。弹出提示时,选择“从此对象中删除所有已继承的权限” → 点击“确定”。

此时列表里只剩几条原始权限项。逐个选中除 TrustedInstaller 和你当前登录的管理员账户外的所有条目(例如 SYSTEM、Users、Everyone),点击“删除” → 每删除一条都需要确认。

关键操作:双击你自己的管理员账户条目 → 在“权限条目”窗口中,只勾选“读取”和“读取和执行”,绝对不要勾选“写入”“修改”“完全控制” → 点击“确定”保存。

添加系统级只读属性与隐藏保护

仅靠 ACL 权限还不够稳定。部分低权限进程仍可能绕过,因此需要叠加文件系统属性防护。

回到 hosts 文件“属性”窗口 → “常规”选项卡 → 勾选“只读”和“隐藏” → 点击“应用”。

如果系统提示“你需要提供管理员权限才能更改此文件夹的属性”,点击“继续” → 输入管理员密码或确认 UAC 提示。

完成这一步后,普通程序调用 CreateFile 或 WriteFile API 时,会直接返回 ERROR_ACCESS_DENIED——连打开写句柄都会失败,从根本上堵死了写入路径。

用命令行彻底固化保护(可选但推荐)

图形界面操作虽然方便,但某些后台服务可能将其重置。使用管理员 PowerShell 执行以下命令,保护更彻底,且不可逆。

以管理员身份运行 Windows Terminal(PowerShell)。

依次执行以下两条命令:

attrib +r +a +s +h C:\Windows\System32\drivers\etc\hosts

icacls C:\Windows\System32\drivers\etc\hosts /inheritance:r /grant:r "NT SERVICE\TrustedInstaller:(F)" /grant:r "%USERNAME%:(R)"

注意:第二条命令中的 %USERNAME% 会自动替换为当前用户名,无需手动修改;执行后如果提示“处理成功”,说明权限已经强制锁定,此后任何第三方软件想修改它,都将无法成功。