我想知道如何“现实”考虑实现拦截代理(具有缓存支持)以实现 Web过滤的目的。我也想支持IPv6,客户端身份验证和缓存。
阅读实现拦截代理的squid wiki http://wiki.squid-cache.org/SquidFaq/InterceptionProxy的缺点列表,它提到了一些在使用时需要考虑的缺点(我想澄清):
答案 0 :(得分:1)
可能会以多种方式截获流量。它不一定需要使用NAT(IPv6不支持)。例如,透明拦截肯定不会使用NAT(透明,因为Proxy不会使用自己的地址生成请求,而是使用客户端地址,欺骗IP地址)。
PMTUD用于检测客户端和服务器之间路径中可用的最大MTU大小,反之亦然,它有助于避免客户端和服务器之间路径上的Ip数据包碎片化。当您在中间使用代理时,即使检测到MTU,它也不一定与从客户端到代理以及从代理到服务器的代理相同。但这并不总是相关的,这取决于所服务的流量以及代理的行为方式。
如果代理服务器代表客户端进行身份验证,则需要知道身份验证方法,并且可能需要客户端中存在的某些cookie。可以这样想......如果代理可以代表您验证对受限资源的访问权限,则意味着任何人都可以代表您进行访问,并且良好身份验证的目的是保护您免受此类可能性的侵害。
我想这是来自Squid人员的一篇非常古老的帖子,但该技术可以将您想要的任何内容重定向到特定的服务器。一种简单的方法是将您的服务器作为网络的默认网关,然后所有数据包都通过它,您可以将您喜欢的数据包重定向到您的应用程序(或其他服务器)。并且您不仅限于HTTP,但您仅限于应用程序协议的工作方式。