解决谷歌搜索频繁人机验证问题
前几天入手的小鸡IP段在谷歌黑名单里,谷歌搜索的时候频繁出现“reCAPTCHA”人机验证,太烦了。找客服换ip还要花银子,而且重新给的IP有可能还是会这样。昨天抽空解决了一下,效果很满意,今天写下关键步骤,分享、备忘。以下步骤建立在ubuntu20.04上,其他系统自行变通。
准备 IPv6
服务器编辑/etc/sysctl.conf
,确保以下三个配置都为0,启用ipv6。
1 | net.ipv6.conf.all.disable_ipv6 = 0 |
然后执行sysctl -p
使配置生效。
接下来确认一下VPS商家有没有提供ipv6,如果有就去申请一个ipv6地址。如果没有,就自己注册tunnelbroker,申请一个IPv6隧道,具体步骤谷歌一下吧,很简单。
执行ping6 www.google.com
,正常情况下能ping通,说明设置正确,记录下返回的地址。
配置hosts
将上一步得到的google的地址填入/etc/hosts
文件中,也可以自己搜索一些谷歌其他的ipv6地址填入。
1 | 2404:6800:8005::68 www.google.com |
访问https://www.google.com/sorry/index,如果显示的是ipv6的地址,那么人机验证的问题基本已经解决了。试着搜索几次,确实不会再弹人机验证页面。
但是,后遗症来了,访问其他网站变慢了,为什么?因为我用的是tunnelbroker的隧道,开启ipv6以后,默认流量全部都走ipv6隧道中转一下,速度当然上不去,接下来再解决这个问题。(原生ipv6地址的应该不会有此问题,也就没必要看下一步了。)
IPv4优先
很简单,只需要修改/etc/gai.conf
,将里面的
1 | precedence ::ffff:0:0/96 100 |
这一行取消注释即可,具体原理见参考链接。
验证一下,执行wget -SO /dev/null weixin.qq.com
1 | # wget -SO /dev/null weixin.qq.com |
可以看到weixin.qq.com解析出了ipv4和ipv6地址,连接的是ipv4地址,用同样的方法也可以看出google.com连接的是ipv6地址。大功告成。
总结
出现人机验证的原因是ip地址被加入黑名单了,我们最终措施是更换ip。更换ipv4地址或启用ipv6地址都可以解决此问题,只不过前者可能需要花银子,后者可能需要花时间😂。