Networking 拦截http代理-与普通代理相比的缺点 < P> >我想知道“现实”是如何考虑使用截取代理(具有缓存支持)来实现Web过滤 >的强>目的。我还希望支持IPv6、客户端身份验证和缓存 阅读SQuiWiki实现截获代理的缺点列表时,它提到了使用它时要考虑的一些缺点(我想澄清): 需要IPv4和NAT-代理拦截不支持IPv6,为什么 它可能导致路径MTU(PMTUD)失败-为什么 代理身份验证不起作用-客户端认为它正在直接与原始服务器通信,在这种情况下,有没有办法进行身份验证 拦截缓存仅支持HTTP协议,不支持gopher、SSL或FTP。您无法为HTTP以外的其他协议设置到代理服务器的重定向规则,因为它不知道如何处理该规则-这似乎很合理,因为在这种情况下,将流量重定向到代理服务器的方式是通过防火墙将数据包的目标地址从原始服务器更改为代理服务器自己的地址(目的地NAT)。在这种情况下,如果我想拦截http以外的其他协议,如何知道连接的目的地,以便将其中继到该目的地

Networking 拦截http代理-与普通代理相比的缺点 < P> >我想知道“现实”是如何考虑使用截取代理(具有缓存支持)来实现Web过滤 >的强>目的。我还希望支持IPv6、客户端身份验证和缓存 阅读SQuiWiki实现截获代理的缺点列表时,它提到了使用它时要考虑的一些缺点(我想澄清): 需要IPv4和NAT-代理拦截不支持IPv6,为什么 它可能导致路径MTU(PMTUD)失败-为什么 代理身份验证不起作用-客户端认为它正在直接与原始服务器通信,在这种情况下,有没有办法进行身份验证 拦截缓存仅支持HTTP协议,不支持gopher、SSL或FTP。您无法为HTTP以外的其他协议设置到代理服务器的重定向规则,因为它不知道如何处理该规则-这似乎很合理,因为在这种情况下,将流量重定向到代理服务器的方式是通过防火墙将数据包的目标地址从原始服务器更改为代理服务器自己的地址(目的地NAT)。在这种情况下,如果我想拦截http以外的其他协议,如何知道连接的目的地,以便将其中继到该目的地,networking,proxy,network-programming,network-protocols,Networking,Proxy,Network Programming,Network Protocols,流量可能以多种方式被截获。它不一定需要使用NAT(IPv6不支持NAT)。例如,透明截获肯定不会使用NAT(透明是指代理不会使用自己的地址生成请求,而是使用客户端地址生成请求,从而欺骗IP地址) > PMTUD用于检测客户端和服务器之间的路径可用的最大MTU大小,反之亦然,有助于避免在客户端和服务器之间的路径上的IP数据包的碎片化。当在中间使用代理时,即使检测到MTU,也不一定与从客户端到代理的相同。但这并不总是相关的,它取决于服务的流量以及代理的行为 如果代理代表客户端进行身份验证,它需要知道

流量可能以多种方式被截获。它不一定需要使用NAT(IPv6不支持NAT)。例如,透明截获肯定不会使用NAT(透明是指代理不会使用自己的地址生成请求,而是使用客户端地址生成请求,从而欺骗IP地址)

> PMTUD用于检测客户端和服务器之间的路径可用的最大MTU大小,反之亦然,有助于避免在客户端和服务器之间的路径上的IP数据包的碎片化。当在中间使用代理时,即使检测到MTU,也不一定与从客户端到代理的相同。但这并不总是相关的,它取决于服务的流量以及代理的行为

  • 如果代理代表客户端进行身份验证,它需要知道身份验证方法,并且可能需要客户端中存在的一些cookie。请这样想……如果代理可以代表您对受限资源的访问进行身份验证,这意味着任何人都可以代表您进行身份验证,这也是一个好的au的目的这样做是为了保护你不受这种可能性的影响

  • 我猜这是Squid的一篇很老的帖子,但是有一种技术可以将你想要的任何东西重定向到特定的服务器。一种简单的方法是将你的服务器作为网络的默认网关,然后所有的数据包都通过它,你可以将你喜欢的数据包重定向到你的应用程序(或其他服务器)。您不仅限于HTTP,还限于应用程序协议的工作方式

  • 流量可能以多种方式被截获。它不一定需要使用NAT(IPv6不支持NAT)。例如,透明截获肯定不会使用NAT(透明是指代理不会使用自己的地址生成请求,而是使用客户端地址生成请求,从而欺骗IP地址)

  • > PMTUD用于检测客户端和服务器之间的路径可用的最大MTU大小,反之亦然,有助于避免在客户端和服务器之间的路径上的IP数据包的碎片化。当在中间使用代理时,即使检测到MTU,也不一定与从客户端到代理的相同。但这并不总是相关的,它取决于服务的流量以及代理的行为

  • 如果代理代表客户端进行身份验证,它需要知道身份验证方法,并且可能需要客户端中存在的一些cookie。请这样想……如果代理可以代表您对受限资源的访问进行身份验证,这意味着任何人都可以代表您进行身份验证,这也是一个好的au的目的这样做是为了保护你不受这种可能性的影响

  • 我猜这是Squid的一篇很老的帖子,但是有一种技术可以将你想要的任何东西重定向到特定的服务器。一种简单的方法是将你的服务器作为网络的默认网关,然后所有的数据包都通过它,你可以将你喜欢的数据包重定向到你的应用程序(或其他服务器)。您不仅限于HTTP,还限于应用程序协议的工作方式


  • 感谢EdwardH提供的提示重播。关于第4点,您建议采用什么方法将数据包重定向到应用程序,以便执行web(或其他协议)过滤?我特别考虑使用Windows方法进行过滤。它必须是通用的,这样我才能看到所有应用程序协议流量。我有使用Linux套接字编程的经验,在那里,即使目标地址不是你的地址,你也可以将流量重定向到应用程序。如果你要进入Windows OS域,这将是一个挑战,我无法给出建议。我唯一能补充的一点是,路由器或智能交换机与常规服务器之间有一个支持重定向的协商协议,称为WCCP,通过它,您可以使用支持它的外部路由器/交换机,在您的服务器中添加支持并使用它。但它有七个eral limition.@EdwaardH您是否使用套接字重定向流量?因此您将来自前向链(例如iptables)的流量作为字节流转发给您的应用程序来处理?在这种情况下,您的应用程序基本上在协议级别上运行-它看到组成http或IP的字节流