我需要彻底阻止域名连接。显然,插件不起作用,因为它们只检查浏览器正在导航到的站点的URL,而不是浏览器正在连接的域。我需要 Firefox,但最好每个浏览器都拒绝与域建立连接,无论何时何地连接到该域,例如在 iframe 中,或者在具有不同 URL 的站点上从它们加载图像。
更改 C:\windows\system32\drivers\etc 处的 hosts 文件根本没有任何作用。将其写为测试:
127.0.0.1 google.com
127.0.0.1 www.google.com
文件中的任何地方都没有执行任何操作,我仍然可以连接到谷歌。
作为参考,我需要类似这样的信息:当某个网站的证书无效时。当这种情况发生时,Firefox 甚至拒绝连接到域名。是否可以将无效证书分配给特定域名,以便阻止它们?此外,我为 Firefox 尝试过的每个 hosts 文件更改插件都会更改 Windows hosts 文件,这显然不起作用。是否可以更改 Firefox 使用的实际设置?
另外,我正在使用 Windows XP,但这并不意味着不可能。
答案1
对于C:\windows\system32\drivers\etc\hosts
: - 我同意 @DavidPostill 的评论,该评论解释了使用 刷新本地名称缓存的必要性,ipconfig /flushdns
但遗憾的是,据我所知,您不能以这种方式阻止整个域:只能阻止特定主机,而不是整个域(抱歉,没有正则表达式解释)。
换句话说,我认为您可以阻止(在刷新名称缓存后,使用上述命令或重新启动后自动阻止),www.google.com
但不是google.com
因为目的地被视为一个整体;因此后一条规则仅适用于专门指向 的连接请求google.com
。
即使您没有单独的服务器,理论上也可以通过多种方式实现阻止整个域的目标(也许除了专有网络安全套件之外);其中两种:
运行本地 DNS 服务器(即使在同一个 Windows XP 机器上,或者在另一台可以连接到本地网络的机器上,运行 Linux 或 Windows)并指示它将任何指向禁止域的请求重定向到另一台主机,并将其他任何内容转发到外部(ISP?)DNS。请参阅绑定,一种非常流行的开源 DNS 服务器。
您的本地 DNS 服务将成为 Windows 网络配置中的默认 DNS 服务器,非特权用户无法更改。
如果“错误请求”被重定向到 localhost,此解决方案会导致“页面加载错误”状态。运行本地代理服务器,配置为将每个最初指向禁止域的请求重定向到错误页面。
每个不同的浏览器都不需要太多工作,以防篡改的方式配置,不直接连接到网络,而是连接到本地代理服务器。
更好的是,如果你可以在本地网络环境中运行代理服务器,在那里你可以禁止(通过防火墙/路由规则)直接访问网络,但代理服务器本身除外。一个好的开源代理,即使在 Windows XP 上也能很好地工作,是乌贼如果“错误请求”由代理管理,则
此解决方案会产生友好(可定制)的错误页面。
两个都绑定和乌贼网络上有非常详尽的记录。
如果您可以告诉我们更多有关您的设置的信息(单台机器?还是本地网络,由哪些机器组成?周围有服务器吗?可配置路由器?)也许我们可以更好地帮助您......