Hosts 是作業系統本機的靜態域名解析表(ASCII 純文字),優先級**高於 DNS**。瀏覽器輸入網址 → 系統先查 Hosts → 有映射直接連 IP → 無映射才查 DNS。位於:
C:\Windows\hosts (或 hosts.sam)C:\Windows\System32\drivers\etc\hosts(無副檔名)/etc/hosts編輯需**管理員權限**,用記事本開啟,另存時選「所有檔案」避免存成 hosts.txt。
# 註解行以 # 開頭
127.0.0.1 localhost
192.168.1.100 fileserver.local
61.145.121.108 www.example.com
::1 localhost (IPv6)
每行:IP位址 [Tab/空白] 域名 [域名別名...],域名之間空白分隔。
將不想連線的域名指向 127.0.0.1(本機回環)或 0.0.0.0(無效位址,連線即失敗更快)。
127.0.0.1 ads.google.com
127.0.0.1 analytics.facebook.com
0.0.0.0 malicious-site.com
0.0.0.0 tracking.pixel.com
優勢:系統級生效(所有瀏覽器、App、命令列)、無需安裝擴充套件、不耗 CPU/記憶體、可精準控制不誤傷正常功能。
現成清單:GitHub 專案 StevenBlack/hosts、hagezi/dns-blocklists 定期更新,下載合併至本機 hosts 即可。
將常用網站的 **真實 IP** 寫入 hosts,省去 DNS 解析往返時間(特別是海外站點、DNS 污染/劫持環境)。
# 先用 nslookup/dig 解析得知真實 IP
104.18.32.100 cdn.jsdelivr.net
172.67.1.234 raw.githubusercontent.com
199.232.68.133 raw.githubusercontent.com
⚠ 風險:目標網站 IP 變更(CDN 切換、負載均衡、換主機)會導致連線失敗,需定期驗證更新。大型 CDN 站點**不建議**寫死 IP,反而可能降低可用性。
開發機映射測試域名:
127.0.0.1 myapp.test
127.0.0.1 api.myapp.test
192.168.10.50 gitlab.internal
192.168.10.51 jenkins.internal
無需架設內部 DNS,即刻生效,團隊成員同步 hosts 檔案即可共用測試環境。
*.example.com,需逐一列出子域名。解決:本地跑 DNSmasq/AdGuard Home + 萬用字元規則,或瀏覽器 Proxy PAC 檔案。::1 facebook.com 同時封鎖 IPv6 連線。ipconfig /flushdns(Win)或 sudo dscacheutil -flushcache(Mac)清除 DNS 快取立即生效。| 特性 | Hosts | DNS | Proxy/PAC |
|---|---|---|---|
| 生效範圍 | 單機系統級 | 全網/區域 | 瀏覽器/代理軟體 |
| 優先級 | 最高 | 次之 | 視設定 |
| 支援通配符 | 否 | 是 | 是 |
| 動態更新 | 手動/腳本 | 自動(TTL) | 自動 |
| 適用場景 | 靜態封鎖/本地開發/固定IP加速 | 通用域名解析 | 複雜分流/繞過審查 |
善用 Hosts,是系統管理員、開發者、高階用戶的必備輕量級網路控制工具。