如何封鎖網站 - 以 Facebook 為例

也許我不是那麼想上你!

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

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

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

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

一切都是 DNS 的緣故

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

如何封鎖網站 - 以 Facebook 為例

這是網際網路的 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 檔吧!

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

如何封鎖網站 - 以 Facebook 為例

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

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

如何封鎖網站 - 以 Facebook 為例

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

如何封鎖網站 - 以 Facebook 為例

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

如何封鎖網站 - 以 Facebook 為例

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

  • 127.0.0.1 www.facebook.com

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

設好之後按[儲存檔案]

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

如何封鎖網站 - 以 Facebook 為例

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

如何封鎖網站 - 以 Facebook 為例

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

如何封鎖網站 - 以 Facebook 為例

補充說明

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

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

47 則留言

  1. 這個方法之前小弟也有試過
    但發現兩個缺點
    1.搜尋該網站在點擊進入就破功了
    2.沒辦法連子網域名稱一起封鎖, 需要在hosts檔在建立一本記錄

    所以現在小弟都用瀏覽器的插件
    不然就是在無線路由器設定封鎖的網站

      • 請問 小弟之前有使用hosts的方式封鎖家裡小朋友完fb跟一些限制集網站
        不過 最近 他又能上這些網站了
        我檢查過hosts文件是沒問題的
        我也把hosts複製到我的電腦裡 確定是不能上的
        不曉得 他是怎麼繞過去hosts的
        如果可以的話 請教教小弟 在不花錢買設備的情況下
        還有啥方法可以封鎖家裡小朋友fb跟一些限制集網站

        家裡環境為
        os;xp
        瀏覽器;google的
        分享器;acer微巨特使(我找過 好像沒地方封鎖 只能鎖IP 不過FB的IP應該鎖不完吧?)
        真的煩請高手幫解決了 謝謝

        • 你家的小朋友可能是用了什麼VPN或是代理的方法,就跟大陸人翻牆上Facebook一樣的原理,如果真的封得了那就不叫網路了
          建議諶是用溝通解決吧!
          中華電信有一個叫色情守門員的服務或許可以鎖,但那是要花錢的

          • 謝謝您的回覆
            想請教 那我有啥辦法可以查出他使用啥vpn
            或是其他我不知道的方法破解hosts呢
            老實說 我也真的很好奇他到底是怎麼用的(礙於面子問題不好意思問他)
            我也想要破解他的破解(還是面子問題> <)
            怎麼可以輸小孩勒 哈哈

    • 可能有效也可能無效
      你知道中國有一個 GFW 的防火牆,那個功能夠強了吧?但是牆內還是有一些人翻牆出來
      我這裡講的還有你說的只是針對一般的使用者有效而已
      而分享器的設定我也有文章介紹,考量或許再來發一篇封鎖的文章

  2. 請問一下喔,我想要打開之前封鎖的網站,有嘗試刪除掉自己打上去的那一串封鎖的網址,但是沒辦法存取,也就是電腦不給我儲存用記事本開啟的Host檔案,已經把防火牆關掉了也一樣,拜託請幫幫我,急需,謝謝。。。

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料