我正在尝试在 EC2 上设置一个结合了 DansGuardian 内容过滤引擎的 Squid 代理。我将通过这个过滤代理过滤来自移动(IOS/Android)客户端的流量,但这可能意味着大量流量流经我的系统,因为我必须通过 DNS 路由所有流量,这反过来可能意味着很多 Amazon EC2 成本!有没有一种已知的方法/标准可以让我以经济有效的方式通过这个代理引导已知的黑名单流量?我探索过的方法包括在设备上创建黑名单并在那里进行过滤,但这可能意味着我必须不断返回并进行更改(添加或删除网站),而且这实际上不可行。
答案1
我认为你必须尝试相反的策略。我不知道 DansGuardian 如何处理列入黑名单的流量,但我敢打赌,从 DansGuardian 中获取这些信息并将这些信息推送到移动客户端会很困难。
相反,你可以推送一份已知的好的但高流量/高带宽站点会流向客户端。您可以通过阅读 squid 日志来查看允许哪些站点,然后汇总它(例如每天字节数最高的站点或最受欢迎的站点)并更新“许可列表”。您可以将许可列表编码到 proxy.pac 文件中,并让客户端读取该文件。我知道 iOS 支持 proxy.pac,现在 Android 可能已经支持它了,但不确定。
这种架构的效率并非 100%,但它可以消除路径上最严重的带宽占用,并为您节省大量资金。