使用代理服务器时,Google 搜索需要验证码

使用代理服务器时,Google 搜索需要验证码

我们目前在我们的网络(一所高中)上设置了 Squid 代理服务器。我们通过代理发送来自学生设备(iPad)的所有流量,包括内部和外部流量。流量被发送到我们的防火墙,然后从那里传递到代理服务器。然后,代理服务器通过我们的互联网过滤器发送流量,该过滤器也位于防火墙级别。

除了 Google 之外,该设置似乎适用于所有网站。在使用 Google 搜索时,我被重定向到 ipv4.google.com,但需要输入验证码才能继续搜索。Google 认为通过代理服务器时存在异常活动。

有办法解决这个问题吗?有没有更好的方法来使用我们的代理,以便 Google 不会将其视为异常活动?另一种选择可能是不让任何来自 Google 的流量通过我们的代理,但我不确定如何做到这一点。

任何帮助,将不胜感激。

谢谢!

答案1

如何使用代理访问除 Google 之外的所有网站

如果您劫持流量并将其通过“透明”代理发送,则可以配置执行劫持的设备,使其不劫持已知属于 Google 的 IP 范围。这样,这些请求就不会通过代理。

如果您更依赖于 Web 代理自动检测脚本,那么您可以在决定是否使用代理或直接连接之前更新脚本以考虑主机名。

但是,如果这些请求最终全部通过单个 NAT 而不是单个代理,Google 可能永远不会知道其中的区别。它仍然会看到所有相同的请求都来自单个 IP,如果通过 NAT 或代理进行,这看起来同样可疑。

为每台设备获取单独 IP 的唯一方法可能是使用 IPv6。幸运的是,Google 支持 IPv6,因此如果您的网络确实有 IPv6,Google 将能够区分来自不同设备的请求。

其他方法

您的网络上可能有一台或几台设备向 Google 发送大量滥用请求。尝试追踪向 Google 发送最多请求的设备,并确定它们是否合法。如果您有几台机器被僵尸网络感染,那么清理它们可能会解决问题。

您还可以仔细检查您的代理是否将所有信息发送给 Google,这可以帮助 Google 识别客户端。如果 Google 可以分辨出哪些请求来自哪个设备,他们可能只会阻止滥用设备,而不会阻止通过代理发送的所有请求。因为http您可以确保所有发送给 Google 的请求都获得X-Forwarded-For标头。Google 可能会完全忽略该标头,您只能通过尝试才能真正发现。

如果请求是在https那里发出的,您能做的就不多了。您无法帮助 Google 识别单个客户端,也无法确定执行了哪些请求,只能知道请求量。但是,请求量可能足以确定您的网络上是否存在滥用设备。

答案2

谷歌通常不允许使用代理进行搜索,因为这可能会影响他们的搜索结果,我尝试过几次,但结果是一样的。

这可能是因为代理可能会影响搜索结果页面或者他们希望每个人都直接来,不要隐藏自己。

答案3

Google 将所有 http 流量切换为 https。这意味着代理服务器无法修改 X-Forwarded-For 条目,除非代理服务器正在执行中间人 https 拦截并生成声称为 *.google.com 的未经授权的证书。

相信 Google 会相信 X-Forwarded-For: 标头中列出的 IP 地址不是机器人,这简直是疯了。任何机器人程序员都可以简单地编写他们的机器人代码,使其在 X-Forwarded-For 标头中使用随机 IP 地址,Google 就会相信它不是机器人。

相信 Google 会相信某些劫持 https 会话并欺骗 ssl/tls 证书的代理服务器足够可信,以至于说它们不是机器人,这种想法太疯狂了。

是否有人在 2015 年实际证明过,在劫持 https、插入 X-Forwarded-For 标头并欺骗 ssl/tls 证书后,Google Captcha 会停止运行?

相关内容