Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Win8 Hosts 檔案失效不生效?授予 Network Service 讀取權限並重啟 DNS Client 服務

編輯:Windows 8 系統介紹

修改 C:\Windows\System32\drivers\etc\hosts 檔案後,ping 域名仍解析為真實 IP,完全不讀取 hosts 對應關係?即使清除 DNS 快取(ipconfig /flushdns)、停用 DNS Client 服務也無效?這是因為 Windows 8 讀取 hosts 檔案的 DNS Client 服務 (Dnscache)** 需在 etc 資料夾擁有 Network Service** 帳號的讀取/執行權限,否則服務無法載入 hosts 內容。本文提供完整指令修復流程。

現象確認:Hosts 明明正確卻不生效

  • Hosts 檔案路徑正確、格式無誤、僅有一行對應。
  • ipconfig /flushdns 清除快取後 ping 仍回傳真實 IP。
  • 檔案權限顯示 SYSTEM、Administrators、目前使用者皆為「完全控制」,但 缺少 Network Service**。

Hosts 檔案測試畫面

Ping 仍解析真實 IP

權限缺少 Network Service

核心修復:五條指令一次搞定

以系統管理員身分開啟命令提示字元(Win+X → 命令提示字元 (系統管理員)),依序執行:

SC stop Dnscache
SC config Dnscache obj= "NT AUTHORITY\NetworkService"
TAKEOWN /F "%windir%\System32\drivers\etc" /A
ICACLS "%windir%\System32\drivers\etc" /GRANT "NT AUTHORITY\NetworkService":RX
SC start Dnscache

指令逐行解析

指令作用
SC stop Dnscache停止 DNS Client 服務,釋放對 etc 資料夾的鎖定
SC config Dnscache obj= "NT AUTHORITY\NetworkService"將 Dnscache 服務的登入身分設為 Network Service(預設即為此,但重設確保一致)
TAKEOWN /F ... /A取得 etc 資料夾擁有權給 Administrators 群組,避免權限不足無法修改 ACL
ICACLS ... /GRANT "NT AUTHORITY\NetworkService":RX授予 Network Service 讀取 (R) 與執行/遍歷 (X) 權限,讓服務能讀取 hosts 檔案
SC start Dnscache重新啟動 DNS Client 服務,重新載入 hosts 內容

驗證修復成果

指令執行完畢後,再次執行 ping 你在 hosts 設定的域名,應立即回傳 hosts 中指定的 IP。若仍不生效,嘗試 ipconfig /flushdns 再測。

常見誤區

  • 只給檔案權限不給資料夾權限: 服務需先「遍歷」資料夾才能讀取檔案,故 ICACLS 目標必須是 etc 資料夾而非單一 hosts 檔案。
  • 用 Everyone 代替 Network Service: 雖能生效但降低安全性,建議精準授予服務帳號。
  • 以為 hosts 只靠檔案系統權限: 實際讀取者是 Dnscache 服務,服務帳號權限才是關鍵。

小結

Win8 Hosts 失效 90% 是 etc 資料夾缺少 Network Service 讀取/執行權限。五條指令精準授權、重啟服務,即時生效免重開機。下次修改 hosts 不生效,直接跑這組指令,比重灌快一萬倍!

Copyright © Windows教程網 All Rights Reserved