如何使用 Hosts 文件完全阻止域

dna*_*man 4 blocking

如果我想使用主机文件阻止一个域,例如 foobar.com,我从另一个线程了解到我不能使用通配符来覆盖该域的所有版本,但必须单独列出每个版本。

既然如此,为了完全阻止该域,我必须列出哪些可能的版本?例如:

http:有/没有www

www(没有http)

https:

http://foobar.com

文件传输协议

ETC

最终的完整列表是什么?还需要涵盖哪些其他类型?某些类型是否重复列出(就主机文件如何解释它们而言),例如 http: with www..... 和www......

(对 doubleyou,doubleyou,doubleyou 感到抱歉,但如果我正常编写它们,编辑器坚持认为它们是实际链接并不允许它们,除非我“将它们包装在代码块中”,无论是什么)。

小智 6

我假设您正在谈论的主机文件是 /etc/hosts 或者它是特定于操作系统的等效文件,如果不是,我的答案将没有任何价值。

首先,你很幸运,因为它不关心(或者,正确地说,不知道)有关协议的任何事情。主机文件仅与主机名(或域)有关。

第二,你运气不好。无法检索特定域下的所有现有主机。事实上,这些名称甚至可以是动态的,并且在查询之前不需要存在。

要阻止 example.com 后面的任何内容,您有两种选择:

  1. 运行您自己的本地 DNS 服务器,并记录 *.foobar.com.,并将其他所有内容递归到真实的 dns。

  2. 嗅探 dns 流量,grep 对 foobar.com 的每个请求,并将以这种方式找到的所有标签动态添加到您的主机文件中。这只会在一段时间后生效,所以它不是万无一失的,并且很难正确执行。

2.) 都是废话。

1.) 就是这样做的方法。这是每个有需要的人都使用的方式。

运行您自己的 DNS 并不是什么复杂的事情,网上有很多友好的资源。尝试在谷歌上搜索“bind howto”。

但是,花点时间重新考虑一下你的目标。

如果您想禁止某些程序打电话回家,适量的流量嗅探可能会显示它使用的任何主机名,您可以将它们手动放入您的主机文件中。

另一方面,如果您想阻止用户(人类)观看您的色情内容,请不要打扰,他们可能比您更聪明,并且会比您部署它们的速度更快地规避您的操作。