![合并多个DNS过滤结果](https://linux22.com/image/1357971/%E5%90%88%E5%B9%B6%E5%A4%9A%E4%B8%AADNS%E8%BF%87%E6%BB%A4%E7%BB%93%E6%9E%9C.png)
多个 DNS 服务器提供针对不同类别的过滤,大部分针对当地政府的“不良内容”,一些针对恶意软件,一些针对广告。我想要创建/使用一个 DNS 服务器,与那些过滤 DNS 服务器进行比较,并且仅在所有 DNS 服务器都同意的情况下才提供地址。例如,如果 DNS 服务器 G 提供干净的未过滤结果,DNS 服务器 N 提供恶意软件和/或色情过滤器,DNS 服务器 F 提供广告过滤器,那么只有当查询不属于恶意软件、色情或广告类别时,G、N 和 F 才会提供相同/相似的答案。因此,通过创建一个仅在所有 DNS 服务器都同意的情况下才应答的服务器 M,M 可以有效地过滤所有这些类别。也许可以在 DDWRT 或 Tomato 上做到这一点,但如果不可以,我会选择可以在 Linux/Windows 中运行的解决方案。
答案1
我不会尝试按照您所建议的方式组合来自具有不同配置的多个 DNS 服务器的结果。
标准 DNS
你可以用普通的 DNS 服务器软件(例如 BIND)来实现这一点。其中一种方法需要做大量的工作来维护被阻止的域名列表:
建议在这个网站是编辑配置文件以包含
zone "ads.x10.com" { type master; file "dummy-block"; };
zone "advertising.com" { type master; file "dummy-block"; };
zone "amazingmedia.com" { type master; file "dummy-block"; };
zone "clickagents.com" { type master; file "dummy-block"; };
zone "commission-junction.com" { type master; file "dummy-block"; };
其中 dummy-block 是
$TTL 24h
@ IN SOA server.yourdomain.com. hostmaster.yourdomain.com. (
2003052800 86400 300 604800 3600 )
@ IN NS server.yourdomain.com.
@ IN A 127.0.0.1
* IN A 127.0.0.1
有人将此描述为一次杀死一只蚂蚁,一个蚁丘。
恢复区
BIND 还支持恢复区可以与公开的黑名单一起使用(因此您不必维护自己的列表)
代理人
有些人认为更好的解决方案是使用 HTTP 代理,例如 Squid鱿鱼守卫
SquidGuard 是一个 URL 重定向器,用于与代理软件 Squid 一起使用黑名单。Squidguard 有两大优势:速度快,而且免费。
您可以通过在路由器中配置规则来强制使用此功能,该规则仅允许来自代理服务器的 HTTP,而不允许直接从任何 PC 发送 HTTP。