如何正確的編輯Hosts系統檔案?
以前寫了這篇簡單的教學「修改系統文字檔案的方法、讓「記事本」或「命令提示字元」以「系統管理員的身份」執行 」,而這篇編輯Hosts檔案,也算是延伸的應用,在Windows Vista之後,由於多了UAC這個機制,所以從那之後開始,我們再也沒辦法「直接」修改一些系統檔案,凡是任何想要修改系統檔案、資料夾的行為,Windows總是會一再的尋問我們是否允許,可能有人會覺得很煩,但這個是一個「保護」的機制,最好學著去適應它吧。
我曉得很多人都曉得Hosts是做什麼用了,但由於我下一篇文章,會使用到這部份的知識,所以先寫了這篇來打頭陣一下。
「Hosts」是一個沒有副檔名的系統檔案,它是一個IP位址和主機名稱的對映檔案,由於它是一個純文字的檔案,所以可以使用「記事本」來編輯,但在Vista之後,記事本要有「系統管理員的權限」,才有辦法編輯它的內容。
「IP位址」和「主機名稱」對映,看似抽像,我來用一個實際的例子來說明。
一般我們要連上Yahoo奇摩,都是在網址列上輸入「tw.yahoo.com」這個「主機名稱」,如下圖:
若用命令提令字元,來執行指令「ping tw.yahoo.com」的話,很明顯可以知道,原來從網路上DNS所查詢到的Yahoo奇摩主機IP位址是「106.10.139.246」,如下圖:
而此時,若我們將「127.0.0.1 tw.yahoo.com」加入到「hosts」檔案內,並且儲存檔案,IP位址一定要放到最前面,而後面則接主機的名稱,如下圖:
而「127.0.0.1」這個IP,是一個保留的特殊IP,它代表自己電腦本身網路卡Loopback的IP位址,所以當我們這樣設定時,電腦若要連線到「tw.yahoo.com」時,就會被導向「127.0.0.1」,也就是自己本身的電腦上,其意義就是讓它連不出去外面的網站。
來,我們測試一下,我們重新再開啟一個新的IE瀏覽器出來,再輸入Yahoo奇摩的網址,這次就出現「無法顯示此網頁」的訊息,如下圖:
原本可以連上Yahoo網站,但經過修改hosts之後,奇摩網站就上不了了,我們再使用Ping指令來測試一下「tw.yahoo.com」,果不其然,這個網址已經被我們對應到「127.0.0.1」了,如下圖:
從這個例子中,我們可以了解到,如果我們想要自己定義主機名稱及IP的配對時,就可以去修改hosts的內容,這樣的優點就是可以加快連上網站的時間,因為它在連線時,不再需要向網際網路上的DNS主機要正確的IP位址,而是直接從hosts檔案中直接查詢,所以少了這次的查詢時,一開始連上的速度就會變快,這是一般我們常見的用途。
另一個用途比較特別,但也很常用,就是要讓電腦不要去造訪某些網站,為什麼要這麼做呢?這個就要靠你自己想了,而有關操作及編輯hosts檔案的教學,請接著往下看。
直接用「記事本」開啟hosts檔案
Step 1. 使用「開始功能功」,在搜尋的欄位中,輸入「記事本」或是「notepad」,再從搜尋到的「記事本」程式上方,按滑鼠右鍵選擇「以系統管理員身分執行」,如下圖:
Step 2. 透過這種方式來開啟熟悉的記事本,我們可以稱它是「超級記事本」,因為只有它才可以編輯這些被Windows保護的檔案。所以接著請打開「C:\Windows\System32\drivers\etc」資料夾中的「hosts」檔案,如果你進入這個資料夾中沒有看到「hosts」這個檔案,這是因為這個檔案是「隱藏檔」,不過沒有關係,請直接在「檔案名稱」中直接輸入hosts,接著再點擊〔開啟舊檔〕,如下圖:
Step 3. 如果你的操作都正確的話,就可以順利打開「hosts」這個檔案了,如下圖:
你可以隨便編輯內容,並且儲存檔案,測試看看是否可以存檔。
利用「命令提示字元」來開啟「記事本」
雖然直接用系統管理員的身份來開啟「記事本」很容易,但我個人來說,還是偏好利用「命令提示字元」,直接用「記事本」來載入「hosts」這個檔案。
Step 1. 在「開啟功能表」輸入「cmd」或者「命令提示字元」,並且在「cmd.exe」中按下右鍵,並且選擇「以系統管理員身分執行」,如下圖:
Step 2. 如果你有以系統管理員身分來執行的話,預設的資料夾路徑就會在「C:\Windows\system32」這個資料夾中,如下圖所示:
Step 3. 此時,我們輸入兩行指令,先切換到hosts所在目錄,「cd drivers\etc」;接著再用「記事本」開啟「hosts」這個檔案,指令為「notepad hosts」,如下圖:
當然這部份指令的使用是很彈性的,你也可以直接輸入「notepad drivers\etc\hosts」,或者完整輸入路徑「notepad c:\windows\system32\drivers\etc\hosts」。
Step 4. 最後沒有意外的,也可以開啟hosts檔案,如下圖:
運用有「系統管理員身分」的「命令提示字元」來開啟「記事本」是一種很特別的方法,怎麼說呢?
當我們用「系統管理員身分」來執行「命令提示字元」之後,「命令提示字元」就擁有「管理員的身分」,不僅如此,這種「能力」在Windows中是「世襲」的,它會一直的傳承下去,所以我們再用「命令提示字元」開啟「記事本」之後,這個「記事本」也會擁有「管理員身分」,以此類推,開啟了「小畫家」,它就是超級小畫家,開啟了計算機,它就變成「超級計算機」,不過我們要「超級計算機」做什麼…