广告拦截主机文件,共享给本地网络上的所有计算机

Tec*_*lic 2 dns adblock dhcp wireless-router hosts-file

我目前使用广告服务器域名更新本地主机文件,并将它们定向到任何地方。好吧,几乎无处可去。我将它们指向 127.0.0.1,但我没有运行 Web 服务,因此它实际上无处可去。不管怎样,它会阻止很多广告以及我在浏览 www 时在网页中发现的不需要的任何其他内容。它不会强迫您使用特定的浏览器或操作系统。(这是一个要求,因为操作系统和浏览器有不同的风格组合,并且这种情况一直在变化)

我的本地网络上有一个 NAS 驱动器,因此我每隔一段时间就会将主机文件复制到那里。然后,当我使用本地网络上的另一台计算机时,如果我也想阻止我的广告,则必须转到 NAS 驱动器并将更新的主机文件复制到本地计算机。

我希望看到的是我的小型 Wi-Fi 路由器执行此任务并让我将主机文件列表添加到其中。它有一个本地 DNS 服务来镜像传出的 DNS 查询或类似的东西。

我必须在网络上设置独立的 DNS 服务器并确保我的所有本地计算机都使用它吗?我是否必须一直开着另一台计算机,使用电力并帮助房间供暖并增加风扇噪音?由于这些原因,我已经购买了 NAS 驱动器来消除网络上的另一台计算机。

然后,如果我使用另一个 DNS 盒子,只是为了阻止广告,我需要 DHCP 服务,因为路由器内置的服务不允许我告诉它要使用哪个 DNS 服务器。它以不可更改的默认值使用自身。因此,我必须关闭 Wi-Fi 路由器上的 DHCP,并且故意不使用它提供的 DNS,这样我就可以再运行一个盒子来维护我的共享主机文件。

在我的网络上,我有几个 xp 机器,它们不是 24/7 运行的,一个 vista,去上大学但周末会在这里,一个 Debian linux 和可启动的 live-cd,以便能够拥有一个网络服务器或者任何即时的东西,电话公司拥有的 Linksys Wi-Fi 路由器和 DSL 调制解调器,除了“防火墙”或“直通”之外没有任何功能,手机也可以通过它冲浪,当它在这里时。但是,当其他人带着笔记本电脑过来时,我会给他们我的 Wi-Fi 代码,然后他们会暂时在我的网络上,希望不会被广告、计数和跟踪。

有没有其他方法可以在不增加支出的情况下实现这一目标?我知道我的 NAS 驱动器实际上只是一个无头 LINUX 盒子,运行在一个小型 12 伏充电器大小的电源上。我通过 ssh 连接到它并环顾四周,但建议我不要扰乱它的内部操作。此外,我认为它有点慢,所以它真的需要在文件服务器之上执行 DHCP 和 DNS 吗?

我真的需要用一些昂贵的工业路由器来替换我的 Wi-Fi 路由器来完成这项任务吗?

Jde*_*eBP 5

DNS 是不适合这项工作的工具。

\n\n

让我们先处理一些愚蠢的事情:

我是否必须一直开着另一台计算机……?

不,这不是 20 世纪 50 年代。计算机可以同时运行多个服务器。自 20 世纪 80 年代以来,许多 Unices 一直很乐意这样做,包括运行自己成熟的解析代理 DNS 服务器,作为标准(开箱即用)。使用您所说的始终在线的计算机。

\n\n

当想要将hosts文件分发到多台计算机时,下一步是设置 DNS 服务器。毕竟,这几乎就是 DNS 诞生的首要原因。所以对你的问题的回答是狭隘的

我必须在网络上设置独立的 DNS 服务器并确保我的所有本地计算机都使用它吗?

是是的。”。这就是将此类数据扩展到整个 LAN 的方法。

\n\n

然而,对于您想要完成的工作来说,DNS 是错误的工具。我知道,建立一个hosts包含大量名称的文件并以这种方式阻止广告似乎是一个绝妙的主意,但它不可扩展 - 正如您已经发现的以及其他人发现的那样在 20 世纪 80 年代 — 并且(即使修改为使用内容 DNS 服务器)它是不合适的。它不够精细,而且违反了分层原则。

\n\n
    \n
  • 这是分层违规,因为您没有阻止 WWW 浏览器通过 HTTP/HTTPS 获取内容。相反,您正在更改计算机上所有内容所使用的名称→地址映射。因此,您要更改 SMTP、IMAP、POP、FTP、HTTP、NTP、CIFS 等的映射,以及查找域名并将其映射到 IP 地址的所有其他内容。对于 LAN 上的那些访客来说,如果他们可能想要使用您单方面认为是“广告”的域名进行 WWW 浏览之外的其他操作,那么事情就彻底搞砸了。你在错误的层面上攻击这种情况。名称→地址映射层不是一个值得浪费时间的层。HTTP/HTTPS 层是。
  • \n
  • 它不够细致,因为一旦你这样做了足够长的时间,你就会发现广告商对你来说是明智的。也许最明显的例子就是 Google 提供的至少一个 Web bug,其 URL 包含域名www.google.com。如果用你的大锤核桃方法来阻止它,你就已经将自己与几乎整个谷歌隔绝了。同一件事还有许多其他实例,其中弹出/背后弹出脚本、第一方 cookie 注入器、网络错误和其他令人讨厌的内容是从与所需内容相同的域提供的。我建议仔细搜索adzapper使用的数据库(其中许多条目使用正则表达式来仅匹配某个域的某些URL),看看这种情况现在发生的范围有多大。
  • \n
\n\n

适合这项工作的工具是代理 HTTP 服务器、PAC 脚本或浏览器内工具。

\n\n

有两种正确的方法可供选择,这两种方法都在 HTTP 层运行,并且都具有比整个域更细的粒度:

\n\n
    \n
  • 直接告诉 WWW 浏览器将其 HTTP/HTTPS 事务发送到何处以获取不需要的内容。 人们经常使用PAC 脚本来做到这一点,并且有很多人发布 PAC 脚本来切换广告,人们可以在此基础上进行构建。(John R. Lo\xe2\x80\x89Verso\ 的脚本已经存在了五年多了。)将正则表达式列表放入 PAC 脚本中,并告诉 WWW 浏览器从哪里加载脚本。WWW浏览器本身重新定位其HTTP/HTTPS事务,无需改变DNS服务,无需搞乱额外/替换设备,并且不会影响其他协议、其他软件和其他人的工作

    通过重定向/处理 HTTP 事务来阻止广告的插件实际上是相同的方法。WWW 浏览器进程本身会完成这项工作,并且它之外的任何内容都不会受到影响。

  • \n
  • 运行一个代理 HTTP 服务器,该服务器具有一组用于重定向/重写机制的模式匹配规则,并指示所有 WWW 浏览器通过它发送 HTTP 流量。(这还有一个额外的好处,如果愿意的话,可以对 LAN 边界的 HTTP 流量施加更严格的限制,因为所有流量都应源自代理 HTTP 服务器的后端。)Adzapper 和Privoxy是可用于此目的的多个代理 HTTP 服务器中的两个。不是由 WWW 浏览器重新定位其 WWW 流量,而是由代理 HTTP 服务器执行此操作。借助一些聪明的代理 HTTP 服务器,人们可以实现各种技巧。
  • \n
\n\n

近十年来,我自己一直使用第一种方法。它的缺点是 WWW 浏览器对 PAC 脚本的处理相当狡猾,即使在今天也是如此。制作一个不能在所有 WWW 浏览器上运行的脚本很容易,失败模式非常严重(例如,如果提供了不正确的 PAC 脚本,RealPlayer 的内置 WWW 浏览器就会挂起/崩溃。) PAC 脚本与某些反恶意软件工具所采用的 WWW 浏览保护机制之间的交互通常不太理想。尽管如此,我可以从经验中保证,只要非常小心,这种方法就可以在各种平台上运行的各种 WWW 浏览器上发挥作用。

\n\n

对于插件来说,缺点也是类似的。必须确保每个WWW浏览器都有该插件,而一个插件适用于所有平台上的各种WWW浏览器的情况很少见。

\n\n

我现在使用第二种方法。与PAC脚本和插件相比,它的优点是完全与浏览器无关,并且只需要在处调试(而不是在多个不同类型的WWW浏览器中,包括工具中所有内置的WWW浏览器)例如媒体播放器、超文本帮助系统、桌面小工具、自动软件更新工具等等)。

\n\n

使用适合工作的正确工具。DNS在这里不是那个工具。

\n