在 Windows 11 系统中,Hosts 文件被第三方程序擅自篡改的情况并不罕见。广告拦截工具、系统优化软件,甚至一些恶意浏览器插件,都可能在未经你许可的情况下修改此文件。其后果包括本地开发环境失效、DNS 遭到劫持、个人隐私面临泄露风险——这些威胁绝非夸大其词。要从根源上切断非法的写入通道,最彻底的手段就是直接剥夺相关权限。

彻底锁定 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% 会自动替换为你当前使用的用户名,无需手动修改;执行后如果提示“处理成功”,说明权限已被强制锁定,今后任何第三方软件都无法再对它进行改动。
