也許我不是那麼想上你!

或許你有特別的原因不想讓你的電腦上 Facebook 或是一些兒童不宜的網站,那你會怎麼辦?

或者是你還是堅持要臉書,但是又怕最近流行的臉書病毒,怕跟我一樣不小心就點下去,造成你自己還有朋友的困擾?

所以你就有要封鎖特定網站 (facebook.com, linkee.com...) 的需求,如果你錢夠多的話,也可以一個月花幾十塊錢去加買什麼守門員的服務

但是我們只要對自己的電腦「動一下手腳」,你一樣可以讓你的電腦跟這些網站絕緣!

一切都是 DNS 的緣故

為了達成這個目的,我們要先瞭解電腦上網的基本常識,我就用這張圖片來說明:

這是網際網路的 DNS 運作流程,因為網路上是用 IP 在傳送資料的,但是一般人不可能記得住那複雜的 IP 位址,所以網際網路從一開始就很貼心地幫你這樣子在服務:

  1. 你在瀏覽器的網址列輸入「www.facebook.com」這樣的網址的時候,你的電腦會先檢查內部有沒有記錄這個網址的 IP 位址,如果沒有的話,就會向你設定的 DNS 伺服器送出查詢的請求
  2. 當 DNS 伺服器收到你的請求之後,會回覆你這個網址的 IP 位址,例如「31.13.76.16」
  3. 接下來你的電腦就再向這個 IP 位址提出瀏覽網頁的請求
  4. 如果這個網站的主機沒有問題的話,就會將他們的網頁內容回傳給你的電腦瀏覽器

而我們要封鎖網站的連線可以透過回報不正確的 IP 位址來達成,但是你應該不可能有權限去叫你的 DNS 伺服器回報假的 IP 位址給你

還好電腦在一開始就允許一個例外的情況發生,而這個例外就是存在你電腦的 Hosts 這個特別的系統檔裡面。

修改電腦的 Hosts 檔

我們前面有提到你的電腦在送出 DNS 查詢之前,會先看看內部是不是有此網址的記錄,而這個內部的記錄有兩部份

  • 如果你電腦裡面的 Hosts 檔有設定此一網址的時候,系統就不會透過 DNS 查詢取得 IP 位址,而是直接使用 Hosts 檔裡面指定的 IP 位址
  • 再來如果你不久之前曾瀏覽過此一網址,那你的電腦還會有一份 DNS Cache 快取還記錄著它的 IP,所以系統會先使用此一 IP 來連線,這樣設計的目的是為了要降低 DNS 伺服器的負載

所以你在網路上看到有人教你用 ipconfig /flushdns 這個指定來清除快取就是為了保證你所連線的 IP 位址是最新的!

瞭解了原理之後我們就動手來修改你的 Hosts 檔吧!

首先請你找到[所有程式]->[附屬應用程式]->裡面的[命令提示字元],但我們不是要直接執行,而是要按右鍵[以系統管理員身分執行]才可以

在這個命令提示字元的 DOS 視窗打上以下的指令(用複製/貼上比較不會出錯)

notepad c:\windows\system32\drivers\etc\hosts

系統就會用記事本打開 Hosts 檔來編輯

請你在這個檔案加上要設定的網址及 IP,記得 IP 在前網址在後,一行一個網址

如果想讓這個網址無效那就輸入 127.0.0.1 這個本地的 IP 位址,所以要封鎖 Facebook 的話就像這樣一行指令

  • 127.0.0.1 www.facebook.com

注意到沒?包括沒有 www 的網址以及 手機版的也都要設定哦!

設好之後按[儲存檔案]

如果你的防毒軟體會阻檔 Hosts 檔修改的話

可以去設定把它關掉(不建議),或是暫時停用防毒軟體,儲存之後再開啟防毒軟體(比較好的作法)

然後這台電腦就再也連不上 Facebook 了

補充說明

  • 由於這是整台電腦共用的設定,所以只要有可以登入電腦而且有管理權限的帳號就可以達成這個目的
  • 就算是你沒有電腦帳號,也可以透過 Ubuntu 光碟開機等方式直接修改 Hosts 檔一樣可以有效
  • 也不一定是改成 127.0.0.1 的 IP 位址,只要不是 Facebook 的 IP 就連不到了
  • 這一招在網站搬家但是 DNS 還沒生效之前也很有用,你可以先看看網站是不是有搬好(把 IP 改成新主機的 IP 即可)

如果你還有什麼 Hosts 檔不錯的用法也歡迎跟大家分享