使用者在瀏覽器位址列輸入訪問的網址域名時,需要轉換成 IP 地址才能讓計算機理解要找到哪個伺服器,而 DNS 伺服器的作用就是將網址轉換為 IP 地址。在查詢 DNS 伺服器時,可能需要消耗一定的時間,或者由於某些原因遭到 DNS 汙染或者劫持,導致網路訪問出現問題。

系統裡有一份名為 Hosts 的檔案,用於儲存計算機網路中各節點資訊,負責將主機名稱對映到 IP 地址,系統會在 DNS 請求查詢之前,系統首先查詢本地 Hosts 檔案是否存在這個地址對映關係,如果有就直接呼叫,沒有的話再向 DNS 伺服器查詢域名解析。從這個角度來看,Hosts 檔案可以用來提高解析效率。

手動修改 Hosts 檔案

Windows 系統中 Hosts 檔案的具體路徑位於

C:\Windows\System32\drivers\etc\hosts

,使用者可新增或者修改類似

IP + 空格 + 域名

的形式正確改變 Hosts 檔案內容。

在 Windows 上如何管理 Hosts?這裡有 3 款小工具推薦給你

開啟命令列視窗,輸入以下命令,使本地的 Hosts 檔案生效:

ipconfig /displaydns //顯示DNS快取內容

ipconfig /flushdns //刪除DNS快取內容

不過,與手動更改 Hosts 檔案相比,如果藉助第三方工具的話,可以實現更好用的功能:

快速備份 Hosts 檔案;

一鍵切換不同的 Hosts 規則;

本地和遠端呼叫 Hosts 檔案。

SwitchHosts!

SwitchHosts! 是一個管理、切換多個 hosts 方案的工具。由於 Hosts 檔案的特殊性,所以使用者使用 SwitchHosts! 工具時需要以管理員身份執行才能更好實現軟體的功能。

在 Windows 上如何管理 Hosts?這裡有 3 款小工具推薦給你

SwitchHosts! 支援 Windows、Linux、macOS 平臺,經過一段時間的體驗,軟體有以下幾大特點:

語法高亮

:Hosts 檔案內容本身就是依據語法編寫的解析規則,使用者使用系統內建的筆記本應用也可以開啟 Hosts 檔案,但如果存在太多地址對映解析的規則,整個文件會顯得混亂。SwitchHosts! 支援了語法高亮特性,方便使用者區分和更好地閱讀 Hosts 檔案內容。

方案允許多選

:SwitchHosts! 一大特色就是支援建立多個 Hosts 檔案方案,軟體預設會自動生成名為 「My hosts」、「backup」兩個 Hosts 檔案,「backup」就是使用者系統原本的 Hosts 檔案內容。透過單獨的開關設定,讓使用者一鍵切換不同的 Hosts 方案,或者同時開啟多個方案。SwitchHosts! 會將多個方案自動合併到位於左邊欄的「系統 Hosts」檔案裡,並且在工作列裡彈出訊息提醒。

點選行號快速切換註釋

:Hosts 檔案中可以在開頭使用

#

註釋,使某條地址解析失效。SwitchHosts! 則支援點選程式碼閱讀的行號來快速實現註釋的效果,無需再手動敲打

#

在 Windows 上如何管理 Hosts?這裡有 3 款小工具推薦給你

系統托盤快速切換

:滑鼠右鍵點選 SwitchHosts! 在系統托盤的應用圖示,使用者即可透過彈出選項中快速切換預設好的 Hosts 方案。

本地/遠端方案

:SwitchHosts! 支援本地和遠端地址兩種方式新增 Hosts 檔案方案。當然,使用者還可以透過匯入/匯出功能,實現備份和恢復不同的 Hosts 檔案。

在 Windows 上如何管理 Hosts?這裡有 3 款小工具推薦給你

SwitchHosts! 的 macOS 版本里,還支援 Alfred 快速呼叫。你可以在作者網站主頁瞭解更多軟體支援 Alfred 背後的開發故事。在一鍵切換、Hosts 規則顯示高亮和最小化到系統托盤上,SwitchHosts! 均提供了不錯的支援功能,尤其在一鍵快速切換功能上,簡單的操作方便了開發者在做本地開發時需繫結特定的 Hosts 方案。

Multiple-host

Multiple-host 更多是為了解決程式猿開發過程中需要頻繁切換 Hosts 的問題,軟體在以下幾個方面為開發和測試提供了便利:

喚起使用虛擬 Hosts 環境的瀏覽器

。在 Multiple-host 開始使用的標籤頁中,軟體支援喚起使用虛擬 Hosts 環境的瀏覽器,分別有 Chrome、Firefox、IE 三大瀏覽器,如果使用者系統中安裝對應的瀏覽器不在其預設的 C 盤檔案路徑中,則可以在「設定 - chrome 啟動路徑/firefox 啟動路徑」選項中進行修改。

在 Windows 上如何管理 Hosts?這裡有 3 款小工具推薦給你

被喚起的瀏覽器只受虛擬 hosts 規則影響,並且不會載入任何的第三方擴充套件外掛,而使用者還可以正常使用瀏覽器。這樣的好處在於方便測試不同的 Hosts 規則產生的效果。

一鍵啟用代理 Hosts

。在代理 host 標籤中,使用者可以透過「新增環境」來建立一個全新的 Hosts 檔案,雙擊環境名稱進入編輯介面,使用者可以自定義不同的規則,Multiple-host 會在儲存之後自動篩選出生成的 Hosts 規則和註釋,方便使用者做進一步的開關操作。

在 Windows 上如何管理 Hosts?這裡有 3 款小工具推薦給你

Hozz

Hozz 使用了 Javascripts 語言編寫,支援 Windows、macOS、Linux 平臺,作者在軟體官網註明了軟體分別在各自的系統版本中進行了測試使用。不過我下載 Windows 10 64位的軟體版本,出現未能成功啟動軟體的問題,換用 Windows 7 版本則不會出現問題,感興趣的使用者需要注意這一點。

在 Windows 上如何管理 Hosts?這裡有 3 款小工具推薦給你

Hozz 內建了簡單的開關鍵功能,支援不同 Hosts 檔案快速切換,拖拽檔案至邊欄實現快速匯入 Hosts 檔案。使用者還可以載入遠端地址來獲得線上 Hosts。由於我在體驗過程中,Hozz 設定頁面未能成功彈出,按照官方說明,軟體的設定頁面,提供了匯入匯出 zip 檔案以及生成 Surge 的配置檔案。

在 Windows 上如何管理 Hosts?這裡有 3 款小工具推薦給你

打造個人的同步線上 Hosts 檔案

前面體驗了三款快速切換 Hosts 的工具,其中有軟體支援遠端呼叫 Hosts 檔案的功能,所以在這部分簡單介紹如何打造屬於自己的同步線上 Hosts 檔案。

在這裡,我使用了「Github 網站 + SwitchHosts!」,具體步驟:

在 Github 上新建專案 new repository,填寫好專案的名稱、是否公開、是否建立說明文件等資訊;

在 Windows 上如何管理 Hosts?這裡有 3 款小工具推薦給你

建立好專案之後,點選「create new file」建立一個新檔案,比如建立一個名為 hosts 的檔案;

在 Windows 上如何管理 Hosts?這裡有 3 款小工具推薦給你

在程式碼編輯窗口裡,按照

IP + 空格 + 域名

的形式建立好規則,確認後點擊「Commit new file」;

在 Windows 上如何管理 Hosts?這裡有 3 款小工具推薦給你

接著就需要獲取 hosts 檔案的線上更新地址,點選「Raw」即可轉換為線上更新地址;

在 Windows 上如何管理 Hosts?這裡有 3 款小工具推薦給你

最後開啟軟體 SwitchHosts!,進入「新增 - 遠端」,將第四步得到的線上地址填寫在 URL 地址裡,設定好自動更新的時間,點選確認完成打造個人的同步線上 Hosts 檔案。

在 Windows 上如何管理 Hosts?這裡有 3 款小工具推薦給你

靈活管理 Hosts 檔案

由於 Hosts 檔案在系統中有著提升網址域名解析效率的作用,靈活管理好 Hosts 檔案方便了做開發除錯工作,網上有開發者還共享了去廣告和特殊功能的 Hosts 檔案。而藉助第三方工具,便於備份檔案,快速切換不同的 Hosts 檔案,甚至是啟用遠端共享的 Hosts 規則。考慮到 Hosts 檔案在系統中有特殊作用,其安全性也應該引起大家重視,不隨便新增網上的規則,同時做好 Hosts 檔案的備份工作。

DNS 設定選項參考少數派分享文:網速變慢?你可能需要先設定好 DNS | 科普