hosts

hosts筆記

在架設網站時,除了伺服主機的網路設定之外,還要配合 DNS 伺服器才能讓網站正常運作,而 DNS 上面的記錄在變更之後,通常都會需要幾個小時才會生效,所以很多人在架設網站初期都會浪費許多時間在等待 DNS 生效,才進行後續的設定,其實我們可以在 DNS 生效之前,以動的方式自行先設定自己電腦上的 hosts 檔,加速網站的建置工作。

hosts 設定檔??

對於網際網路的基礎知識有瞭解的人應該都清楚網址與 IP 的對應關係,每個網站的網址都會對應一個或多個 IP 位址,當使用者要連上一個網站之前,要先知道網站的網址(如 www.google.com ),接著連線至 DNS 伺服器,查詢該網址所對應的 IP 位址,獲得網站的實際 IP 位址之後,才能連上該網站瀏覽上面的內容。

 DNS01

DNS 的作用

DNS 伺服器的作用就是負責將網址轉換成 IP 位址,而 hosts 設定檔的作用跟 DNS 伺服器相同,這個檔案裡面紀錄了一些網址與 IP 位址的對應表,一般的電腦在需要查詢網址與 IP 位址的時候,會先開啟這個檔案來查詢,如果這個檔案裡面剛好有電腦需要查詢的對應記錄,就可以直接連上網站來瀏覽;如果從 hosts 設定檔裡面查不到,才會連線至 DNS 伺服器來查詢。

 DNS01

這個 hosts 設定檔在台電腦中都有,只是一般人可能沒注意到它的存在,也沒有在這個檔案加入任何對應的內容,當這個檔案沒有任何內容時,就等於沒有任何作用,所有的網址與 IP 位址的對應還是會依賴 DNS 伺服起來處理,絕大部分的電腦應該都是處於這樣的狀況。

如何設定 hosts 檔??

hosts 設定檔在 Windows 與 Linux 系統上都有,而且裡面的資料格式完全一樣,只是放置檔案的目錄有差異而已。

Windows 系統

Windows 系統上的 hosts 設定檔路徑是:

C:\WINDOWS\system32\drivers\etc\hosts

用記事本打開 hosts

45.118.135.69	blog.ian		# ian 部落格

另存新檔

我們可以將新的 hosts 檔另存新檔,儲存在別的目錄中,然後在用滑鼠拖進系統的 etc 目錄。

Linux 系統

在 Linux 系統上的 hosts 設定檔路徑是:

/etc/hosts

如果要修改它,要使用 root 管理者權限修改:

$ sudo vi /etc/hosts

hosts 設定檔用途

大部分的使用者可能不會需要使用到 hosts 設定檔,反而是有些惡意程式(病毒)會竄改 hosts 設定檔,讓使用者連線至某些特定的網頁主機(俗稱綁架網頁),遇到這樣的狀況就可以去檢查一下 hosts 設定檔,看看有沒有什麼異常的記錄在裡面。

舉例來說,如果您發現您電腦中的 hosts 記錄檔裡面有類似這樣的記錄:

12.34.67.78 tw.yahoo.com

45.32.83.18 www.google.com.tw

192.94.57.8 www.pchome.com.tw

那就表示您的電腦可能已經中毒了,因為通常網路上公開的網站都是透過 DNS 伺服器來查詢網址與 IP 的對應關係,不會使用 hosts 設定檔,會寫在 hosts 檔中的大部分都是內部網路的主機,也就是說這裡通常只會有私人的主機,如果出現公開的網站的話,就有點不太正常。

除了惡意程式的問題之外,網站的管理者也時常有機會使用 hosts 設定檔來測試自己網站,以我個人的經驗來說,當架設新網站或是 轉移網站的過程 都會需要藉由修改 hosts 設定檔,在網站正式公開之前,對網站做一些測試,避免公開網站後才發現問題,影響訪客的瀏覽。

在更換網頁主機(網站搬家)時,如果 hosts 設定檔運用得當,甚至可以讓網站維持 100% 的 uptime,網頁主機更換的過程中,完全不會影像使用者的瀏覽。

參考

手動設定網址與 IP 對應的 hosts 檔教學,適用 Windows、Mac OS X 與 Linux 系統 - G. T. Wang https://blog.gtwang.org/windows/windows-linux-hosts-file-configuration/