關於 host file ( Windows )
開始研究 host files 這東西的契機是,在看動畫瘋時一直被廣告煩得很不爽,然後就沒想說隨便 Google 看看有沒有什麼招,沒想到有人有一樣的想法而且還把心思動到 host file 上,覺得這個用法滿有意思的
host file
網路就像一個巨大的城市,而每個網站都是這個城市中的一個建築物。在這個城市裡,每棟建築物都有一個獨特的地址(IP 地址)。但是,我們的頭腦無法記住地址,所以我們給每棟建築物起了名字(域名)。
現在,想像你的電腦會幫你連接到你想去的建築物,有兩種方式來幫你找到正確的地址:
1.打電話給城市的訊息中心(DNS Server)詢問地址。
2.查看一本特殊的私人電話簿(hosts 文件)。
hosts 文件的運作機制如下:
優先級:當你想訪問一個網站時,你的電腦首先會查看 hosts 文件(私人電話簿)。
格式:hosts 文件中的每一行都像是電話簿中的一個條目,包含一個 IP 地址和對應的域名。
覆蓋 DNS:如果 hosts 文件中有你要找的網站,電腦就會直接使用這個地址,而不會去詢問 DNS Server。
hosts 文件就像是一個可以自定義的、優先級很高的小型 DNS 系統。它給了用戶更多控制權。
測試
1.開啟 host file
方法一.
手動去預設路徑 : C:\Windows\System32\drivers\etc\hosts
方法二.
1.WIN + R
2.輸入 %WinDir%\System32\Drivers\Etc
方法三.
1.在 PowerShell 輸入 notepad $PROFILE
2.加入 function hosts { notepad c:\windows\system32\drivers\etc\hosts }
3.存檔
4.重新開啟 PowerShell
5.輸入 hosts
2.編輯 host file
我們指定 www.google.com 給 127.0.0.1 (本機),簡單說就是新增一條 127.0.0.1 www.google.com.tw 然後存檔
3.確認結果
接著在瀏覽器上,像平常一樣跑去 google.com.tw
結果可以看到行為不會像平常正常的 Google 網頁
或者我們也可以用 ping 的方式快速確認
修改後
4.如果沒有成功,可以嘗試清除 DNS Cache
CLI
1 |
|
如果還是沒成功而且是用 Chrome可以嘗試
chrome://net-internals/#dns
參考 : https://superuser.com/questions/723703/why-is-chromium-bypassing-etc-hosts-and-dnsmasq
常見用途
想像我們正為公司準備一個重要的網站升級。新版網站已經開發完成,但你還不能貿然將它發布到公眾可見的網絡上。畢竟,萬一有什麼小問題,可能會影響公司的形象。這時候,Hosts 文件就派上用場了
你有一個域名,比如說 “allen.com”。目前,這個域名指向的是舊版網站。你想在不影響現有用戶的情況下,先自己看看新版網站在真實域名下的表現。
正常情況下,當你在瀏覽器輸入 “allen.com” 時,你的電腦會向 DNS Server 詢問這個域名對應的 IP 地址。但是現在,你不想使用公開的 DNS 記錄,因為那樣所有人都會看到新網站。
這時,你可以打開 host file 這個文件,加一行:
12.34.56.78 allen.com
這裡的 “12.34.56.78” 是存放新網站的 Server IP 地址。
接著,當你在瀏覽器中輸入 “allen.com” 時,你的電腦不再詢問 DNS 服務器,而是直接查看 Hosts 文件。
結果就是,你看到的是新版網站,而世界上其他所有人看到的依然是舊版網站。你可以盡情地測試、調整,確保一切完美無缺。等到你百分之百滿意了,再正式更新 DNS 記錄,讓全世界看到新網站。
綁架網頁
其實剛才的實作也是綁架網頁的一種做法,把使用者常常瀏覽的公開網頁指向特定的 IP,尤其是沒事跑去下載對岸的軟體就有可能發生這種事情,什麼 360 衛士、快播Qvod、西瓜影音、搜狐影音…
封鎖網站
中華電信的色情守門員利用類似的作法來審查是否為黑名單網站,但他們是在 DNS 上動手腳
手機也有 host file 嗎?
有趣的是,手機也有 host file,但 iOS 需要透過越獄 (jailbreak) 才能去修改這個文件,不知道會不會因此影響更新以及保固,沒事還是不要亂試比較好(拿朋友的來試(?))
教學文可參考 : https://www.ptt.cc/bbs/iOS/M.1414987281.A.683.html
動畫瘋擋廣告實驗
教學 : https://home.gamer.com.tw/creationDetail.php?sn=5103036
我們來試試看 2024 是不是還適用
打開動畫瘋,選擇同意
煩死人的彈出式廣告出現啦
經過實際測試後,加了一些東西
1 |
|
雖然還是要看 30 sec 廣告(畢竟還是要支持平台),但至少不用每次都要再關掉一次彈出式視窗了!
開源的 host files 管理介紹
網路上有人製作了防追蹤、擋廣告的集大成 host file :
HOSTS
https://github.com/StevenBlack/hosts/
看起來到現在都還有在維護
這個 Repo 合併多個 hosts 文件來源 & 分類,它提供了 30 幾種不同的 hosts 版本,包括基礎版與加入各種 Extensions(如假新聞、賭博、色情、社交媒體等)的版本,使用上也提供使用 Docker 容器來自動化維護 hosts 文件的方法,包括自動讀取白名單等等
另外,文件建議使用 0.0.0.0 而不是 127.0.0.1,因為
- 當系統嘗試連接到 0.0.0.0 時,它會立即失敗
- 不干擾可能在本地計算機上運行的 Web 服務器
- 明確使用 0.0.0.0 表示不可訪問的 domain
不過要注意 Windows 系統對大型 hosts 文件支援上可能會有問題,如果 hosts 文件太大,可能會導致會連網站有問題,因為在 DNS Client 啟動時,它會讀取 hosts 文件並將其內容載到記憶體中。如果 hosts 文件很大 (比如包含成千上萬條記錄), 這個載入可能會占用大量資源,所以作者提供了兩種作法:
- disable-dnscache-service-win.cmd 的腳本來禁用 DNS Cache service
- 使用 Windows CLI Hosts Compress 來壓縮 hosts 文件,並且提供 PowerShell 版本的壓縮腳本
今日精神能量分析
精神能量 : 🤸♂️
昨天去小巨蛋溜冰,覺得這種技巧型運動,在練習怎麼控制自己身體的過程滿有趣的


