比较 iptables 与 dnsmasq-/etc/hosts 的域阻止

比较 iptables 与 dnsmasq-/etc/hosts 的域阻止

我现在用域名解析,具有从 Energized packs 获得的大型 /etc/hosts 文件 [https://energized.pro/#packs]。其中一些相当大。

尝试从 dnsmasq 团队获取信息,该团队仍在使用邮件列表,不是论坛,已经不可能了。

1a) 有人可以告诉我 dnsmasq 如何解析地址吗?
1b) 是:缓存、/etc/hosts,然后是上游 DNS?
1c) /etc/hosts 是否以某种方式缓存在内存中?
1d)如果没有,是否有工具/解决方案可以让我减少查找延迟?

2a) 会ip表过滤器能够更快地阻止大量域/URL [大约 150,000 个以上]?
2b) 有没有办法将巨大的过滤器列表存储在内存中,以便 iptables 更快?我读到一些关于IPTables-IPv4-DBTarpit

3) 对于阻止大量 IP 地址的 IP 查找的延迟最短的其他工具有什么建议吗?

我有这么多内存,我想使用它。

答案1

/etc/hosts比使用for更好的dnsmasq是使用这样的行创建配置

address=/some.adserver.com/127.0.0.1

您可以包含生成的阻止列表文件

conf-file=...

dnsmasq在的主配置文件中。

如果您搜索关键字,dnsmasq adblock您可能会找到一些详细说明。

您问题中的“通电”URL 还提供了特定于dnsmasq.

答案2

比较两个选项:

1:将addn-hosts=hosts.conf[来自 Energized.pro] 添加到dnsmasq.conf
从运行 dnsmasq 的同一台计算机发出的挖掘请求中添加了 3 秒(不是毫秒)
我看到域的结果时间大致相同,无论hosts.conf是否在列表中。

2:dnsmasq.conf no-hosts添加了参数,但将 Energized.pro 主机附加到我的/etc/hosts文件后,没有添加额外的查找时间:挖掘不同域的时间为 72 毫秒(dnssec 添加延迟),重复挖掘同一域的时间为 0 毫秒;同样/etc/hosts,第一次或随后在 0 毫秒内对正确报告的 0.0.0.0中的域进行挖掘。

根据我的阅读,/etc/hosts在启动时加载到内存中。因此,dnsmasq 似乎正在访问内存驻留/etc/hosts数据,而不将其存储在自己的进程内存中,而 利用 则addn-hosts=hosts.conf这样做。第一个挖掘花费了 72 毫秒,第二个挖掘(在缓存中)花费了 0 毫秒,因此中使用的缓存参数dnsmasq.conf严格用于缓存查找,而不用于addn-hosts=hosts.conf数据,所以我不知道它存储在哪里(但对于3秒,也许是一个tmp文件?!?)

如果我在代码中找到更多内容,我会更新。

相关内容