如果我想使用主機檔案封鎖一個網域,例如 foobar.com,我從另一個執行緒了解到我不能使用通配符來覆寫該網域的所有版本,但必須單獨列出每個版本。
既然如此,為了完全阻止該網域,我必須列出哪些可能的版本?例如:
http:有/沒有
www
www
(沒有http)
https:
http://foobar.com
文件傳輸協定
ETC
最終的完整清單是什麼?還需要涵蓋哪些其他類型?某些類型是否重複列出(就主機檔案如何解釋它們而言),例如 http: with www
..... 和www
......
(對 doubleyou,doubleyou,doubleyou 感到抱歉,但如果我正常編寫它們,編輯器堅持認為它們是實際鏈接並不允許它們,除非我“將它們包裝在代碼塊中”,無論是什麼)。
答案1
我假設您正在談論的主機文件是 /etc/hosts 或它是特定於作業系統的等效文件,如果不是,我的答案將沒有任何價值。
首先,你很幸運,因為它不關心(或者,正確地說,不知道)有關協議的任何事情。主機檔案僅與主機名稱(或網域)有關。
第二,你運氣不好。無法檢索特定網域下的所有現有主機。事實上,這些名稱甚至可以是動態的,並且在查詢之前不需要存在。
要封鎖 example.com 後面的任何內容,您有兩個選擇:
運行您自己的本機 DNS 伺服器,並記錄 *.foobar.com.,並將其他所有內容遞歸到真實的 dns。
嗅探 dns 流量,grep 對 foobar.com 的每個請求,並將以這種方式找到的所有標籤動態新增至您的主機檔案。這只會在一段時間後生效,所以它不是萬無一失的,而且很難正確執行。
2.) 都是廢話。
1.) 就是這樣做的方法。這是每個有需要的人都會使用的方式。
運行您自己的 DNS 並不是什麼複雜的事情,網路上有很多友善的資源。嘗試在Google上搜尋“bind howto”。
但是,花點時間重新考慮你的目標。
如果您想禁止某些程式打電話回家,適度的流量嗅探可能會顯示它使用的任何主機名,您可以將它們手動放入您的主機檔案中。
另一方面,如果您想阻止用戶(人類)觀看您的色情內容,請不要打擾,他們可能比您更聰明,並且會比您部署它們的速度更快地規避您的操作。
答案2
你自己回答了。根據主機檔案規範,您不能使用通配符。
如果您有以下情況,您可能會想嘗試不同且更複雜的方法:真的需要完全阻止一個網域。例如,您可能想要執行自己的 DNS,正確套用過濾。
最便宜的是使用 Raspberry Pi 硬體安裝 DNS 服務(確保在 Raspy 上執行 DHCP 或相應設定家庭路由器,或使用靜態 IP)。
答案3
可能是一個老問題,但顯然仍然沒有得到解答。
簡單的:
127.0.0.1 xyz //直接找localhost位址
這將阻止任何名為的網域名稱。它既便宜又髒,但它的工作原理是當你告訴你的電腦該網域位於你的「本地IP」時,因此它除了超時之外不會執行任何操作。
我用這種方法來殺死大多數廣告攔截軟體甚至無法阻止的嚴重粗略的彈出網站。