谷歌人机验证 reCAPTCHA 的解决办法

首先声明这个不是破解谷歌 reCAPTCHA 的意思Orz

当前世界范围的IPv4地址紧张,运营商给自家用户常常分配同一个IP上网(这句可以无视666)。在这种情况下访问谷歌搜索,容易被谷歌 reCaptcha 误伤识别成疑似机器人。这篇文章讨论如何避免这种情况。

接下来是正文

以前进行谷歌搜索的时候,都是很正常的。最近服务器发生了一些变动,在地址栏直接输入关键字搜索,就跳出了人机验证的界面,如下图

第一次遇到只要点击窗口就没有问题了,心里还感叹了下谷歌能把人机验证这事做的这么好,不错。然而这个窗口还是会不断调出来扰人= =

次数多了之后 Google 还会弹出一个窗口,要求输入传统的验证码或者跳出阿猫阿狗汽车的图片让你选择。

关于谷歌人机验证的详细新闻,可以看雷锋网的这篇文章——《与恼人的验证码说拜拜,Google用一次点击区分人与机器》。我猜测这是多人公用同一个谷歌搜索的站点引起的问题。Google reCaptcha 功能会在收集大量信息,包括IP地址和cookies,然后通过收集这些数据对比用户是否和过去在互联网上的行为一致,来判定这个用户究竟是不是机器人。

在好基友的帮助下我找到了一个折中解决的办法。简单说来就是新建一个搜索引擎,指定想要的搜索地址就好(最好避开与你共用一条线路的用户访问的谷歌搜索的站点——主站.com,香港.hk和日本.co.jp这一类)。下面是具体的步骤:

1 访问 <google.com/ncr>,随便搜索一个关键字。(ncr=no country redirect不做国家跳转) 2 修改浏览器默认搜索引擎。下面以 Chrome 为例:

打开设置

管理搜索引擎

自定义搜索引擎,并且设为默认搜索引擎

将自定义搜索的地址改成各种天花乱坠的谷歌 + /search?q=%s ,比如

亚洲:

蒙古 google.mn蒙古语
韩国 google.co.kr 韩语
日本 google.co.jp 日语
越南 google.com.vn 越南语
老挝 google.la 老挝语
柬埔寨 google.com.kh 高棉语
泰国 google.co.th 泰语
马来西亚 google.com.my 马来语
新加坡 google.com.sg 马来语
文莱达鲁萨兰国 google.com.bn 马来语
菲律宾 google.com.ph 菲律宾语
印度尼西亚 google.co.id 印尼语
东帝汶 google.tp 葡萄牙语
哈萨克斯坦 google.kz 哈萨克语
吉尔吉斯斯坦 google.kg 吉尔吉斯语
塔吉克斯坦 google.com.tj 塔吉克语
乌兹别克斯坦 google.co.uz 乌兹别克语
土库曼斯坦 google.tm 土库曼语
阿富汗 google.com.af 波斯语
巴基斯坦 google.com.pk 乌尔都语
尼泊尔 google.com.np 尼泊尔语
印度 google.co.in 英语
孟加拉国 google.com.bd 英语
斯里兰卡 google.lk 僧伽罗语
马尔代夫 google.mv 马尔代夫语
科威特 google.com.kw 阿拉伯语
沙特阿拉伯 google.com.sa 阿拉伯语
巴林 google.com.bh 阿拉伯语
阿联酋 google.ae 阿拉伯语
阿曼 google.com.om 阿拉伯语
约旦 google.jo 阿拉伯语
以色列 google.co.il 阿拉伯语
黎巴嫩 google.com.lb 阿拉伯语
土耳其 google.com.tr 土耳其语
阿塞拜疆 google.az 阿塞拜疆语
亚美尼亚 google.am 亚美尼亚语英语
莱索托 google.co.ls 莱索托语

欧洲: 欧洲:

冰岛 google.is英语
丹麦 google.dk 丹麦语
挪威 google.no 挪威语
瑞典 google.se 瑞典语
芬兰 google.fi 芬兰语
爱沙尼亚 google.ee 爱沙尼亚语
拉脱维亚 google.lv 拉脱维亚语
立陶宛 google.lt 立陶宛语
爱尔兰 google.ie 爱尔兰语
英国 google.co.uk 英语
根西 google.gg
泽西 google.je
马恩 google.im
法国 google.fr 法语
荷兰 google.nl 荷兰语
比利时 google.be 荷兰语
卢森堡 google.lu 德语
德国 google.de 德语
奥地利 google.at 德语
瑞士 google.ch 德语
列支敦士登 google.li 德语
葡萄牙 google.pt 葡萄牙语
西班牙 google.es 西班牙语
直布罗陀 google.com.gi 西班牙语
安道尔 google.ad 法语
意大利 google.it 意大利语
马耳他 google.com.mt 马耳他语
圣马力诺 google.sm 意大利语
希腊 google.gr 希腊语
俄罗斯 google.ru 俄语
白俄罗斯 google.com.by 白俄罗斯语
乌克兰 google.com.ua 乌克兰语
波兰 google.pl 波兰语
捷克 google.cz 捷克语
斯洛伐克 google.sk 斯洛伐克语
匈牙利 google.hu 匈牙利语
斯洛文尼亚 google.si 斯洛文尼亚语
克罗地亚 google.hr 克罗地亚语
波黑 google.ba 塞尔维亚语
黑山 google.me 黑山语
塞尔维亚 google.rs 塞尔维亚语
马其顿 google.mk 马其顿语
保加利亚 google.bg 保加利亚语
罗马尼亚 google.ro 罗马尼亚语
摩尔多瓦 google.md 摩尔多瓦语

非洲: 非洲:

埃及 google.com.eg 阿拉伯语
利比亚 google.com.ly 阿拉伯语
阿尔及利亚 google.dz 阿拉伯语
摩洛哥 google.co.ma 阿拉伯语
塞内加尔 google.sn 法语
冈比亚 google.gm 英语
马里 google.ml 法语
布基纳法索 google.bf 法语
塞拉利昂 google.com.sl 英语
科特迪瓦 google.ci 法语
加纳 google.com.gh 英语
多哥 google.tg 法语
贝宁 google.bj 法语
尼日尔 google.ne 法语
尼日利亚 google.com.ng 英语
圣赫勒拿 google.sh 英语
喀麦隆 google.cm 法语
乍得 google.td 阿拉伯语
中非 google.cf 法语
加蓬 google.ga 法语
刚果(布) google.cg 法语
刚果(金) google.cd 法语
安哥拉 google.it.ao 葡萄牙语
埃塞俄比亚 google.com.et 安哈拉语
吉布提 google.dj 阿拉伯语
肯尼亚 google.co.ke 英语
乌干达 google.co.ug 英语
坦桑尼亚 google.co.tz 英语
卢旺达 google.rw 卢旺达语
布隆迪 google.bi 布隆迪语
马拉维 google.mw 契瓦语
莫桑比克 google.co.mz 葡萄牙语
马达加斯加 google.mg 马尔加什语
塞舌尔 google.sc 英语
毛里求斯 google.mu 英语
赞比亚 google.co.zm 英语
津巴布韦 google.co.zw 英语
博茨瓦纳 google.co.bw 茨瓦纳语
纳米比亚 google.com.na 南非荷兰语
南非 google.co.za

大洋洲:

澳大利亚 google.com.au 英语
诺福克岛 google.com.nf 英语
新西兰 google.co.nz 英语
所罗门群岛 google.com.sb Pidgin
斐济 google.com.fj 印地语
密克罗尼西亚 google.fm 英语
基里巴斯 google.ki 吉尔伯特语
瑙鲁 google.nr 瑙鲁语
托克劳 google.tk 英语
萨摩亚 google.ws 英语
东萨摩亚 google.as 萨摩亚语
汤加 google.to 英语
纽埃 google.nu 纽埃语
库克群岛 google.co.ck 毛利语 法语
多米尼加 google.com.do 西班牙语
特立尼达和多巴哥google.tt
哥伦比亚 google.com.co 西班牙语
厄瓜多尔 google.com.ec 西班牙语
委内瑞拉 google.co.ve 西班牙语
圭亚那 google.gy 英语
秘鲁 google.com.pe 西班牙语
玻利维亚 google.com.bo 西班牙语
巴拉圭 google.com.py 西班牙语
巴西 google.com.br 葡萄牙语
乌拉圭 google.com.uy 西班牙语
阿根廷 google.com.ar 西班牙语
智利 google.cl 西班牙语

美洲:

格陵兰 google.gl 格陵兰语
美国 google.com 英语
墨西哥 google.com.mx 西班牙语
危地马拉 google.com.gt 西班牙语
伯利兹 google.com.bz 英语
萨尔瓦多 google.com.sv 西班牙语
洪都拉斯 google.hn 西班牙语
尼加拉瓜 google.com.ni 西班牙语
哥斯达黎加 google.co.cr 西班牙语
巴拿马 google.com.pa 西班牙语
巴哈马 google.bs 英语
古巴 google.com.cu 西班牙语
牙买加 google.com.jm 英语
海地 google.ht

Safari

特别的,针对于 Mac 用户以及 Safari 蛋疼的尿性——没办法自定义搜索引擎,可以通过插件『Clean Links for Google』达到不再重定向、直达.com的作用。

当然,要使得这个插件生效,你同样需要先访问 <google.com/ncr> 。再接下来地址栏搜索,就会直达 .com 网站啦。

参考资料


linux命令列表

一. 启动,关机,登入,登出相关命令

[login] 登录

[logout] 登出

[exit] 登出

[shutdown] 停止系统

[halt] 停止系统

[reboot] 重启动

[poweroff] 切断电源

[sync] 把内存里的内容写入磁盘

[lilo] 安装lilo启动管理程序

[grub] 安装lilo启动管理程序

二. Shell相关命令

[chsh] 切换Shell

[history] 显示命令履历

[alias] 设置命令别名

[unalias] 取消命令别名

[which] 显示命令所在位置

[type] 查询命令种类

[echo] 显示字符串或者变量内容

[set] 设置/显示Shell变量

[printenv] 显示环境变量

[export] 设置环境变量

[env] 设置临时环境变量

[unset] 释放环境变量

[setenv] 设置环境变量

[unsetenv] 释放环境变量

[source] 执行文件当中的命令

[man] 查询命令手册

[info] 查询超文本命令手册

[whatis] 显示命令简介

[apropos] 通过关键字查询手册

三. 用户管理相关命令

[su] 切换到其他用户

[useradd] 追加用户

[adduser] 追加用户

[userdel] 删除用户

[usermod] 修改用户设置

[chfn] 修改用户私人信息

[groupadd] 追加组

[groupdel] 删除组

[groupmod] 修改组设置

[passwd] 更改密码

[whoami] 显示用户名

[logname] 显示登录用户帐号

[users] 显示所有登录用户信息

[who] 查询登录用户信息

[w] 查询登录用户信息

[id] 显示指定用户的ID信息

[groups] 显示指定用户的所属组

[finger] 显示指定用户的个人信息

[mesg] 开关与他人收发消息

[write] 给其他用户发消息

[wall] 给所有用户发消息

[talk] 和其他用户聊天

四. 系统消息相关命令

[top] 提供了实时的对系统处理器的状态监视

[date] 显示/设置当前时间

[uptime] 显示系统运行时间

[arch] 显示机器的核心构架(如i386)

[uname] 显示操作系统信息

[tty] 显示终端名

[last] 显示登录/登出在履历

[lastb] 显示非法登录信息

[dumpkeys] 显示当前键盘配置

[loadkeys] 变更键盘配置

[df] 查询磁盘使用信息

[du] 查询磁盘使用信息

[dmesg] 显示系统启动消息

[script] 保存输入输出到文件

五. 文件操作相关命令

[ls] 显示文件列表

[tree] 显示目录树

[pwd] 显示当前路径

[cd] 更改当前路径

[pushd] 追加路径到目录堆栈

[popd] 从目录堆栈删除路径

[dirs] 显示目录堆栈的内容

[mkdir] 创建路径

[rmdir] 删除路径

[cp] 复制文件/目录

[rm] 删除文件/目录

[mv] 移动文件/目录,修改文件名

[chown] 更改文件/目录的所有者

[chgrp] 修改文件/目录的所有组

[chmod] 修改文件/目录的权限

[touch] 更改文件时间

[ln] 建立文件/目录链接

[find] 查找文件

[whereis] 显示文件存在的路径名

[file] 查询文件种类

[size] 查询文件大小

六. 文件编辑相关命令

[cat] 显示文件内容

[tee] 输出到文件和屏幕

[more] 分屏显示文件内容

[less] 分屏显示文件内容

[head] 显示文件头部内容

[tail] 显示文件尾部内容

[fold] 折叠显示长行

[sort] 排列文件的行

[cmp] 比较文件内容

[diff] 显示文件差异

[nkf] 更改日语文件编码

[dd] 变更文件之后复制

[wc] 统计文本单词数,文件大小等

[split] 分割文件

[paste] 以行连接文件

[join] 以字段连接文件

[grep] 查询文字

[uniq] 过滤重复部分显示文件内容

[tr] 替换文字

[sed] 替换文字

[vi] vi文字编辑器

七. 压缩/解压缩相关命令

[tar] 压缩/解压缩文件

[compress] 压缩/解压缩文件

[uncompress] 解压缩

[gzip] 压缩/解压缩文件

[gunzip] 解压缩

[zcat] 显示压缩文件的内容

[lha] 压缩/解压缩文件

[uuencode] 把二进制文件编码为文本文件

[uudecode] 把经过编码的文本文件还原为二进制文件

八. MS-DOS工具集

[mtools]命令

[mdir] 显示文件列表

[mcd] 改变当前目录

[mmd] 新建目录

[mrd] 删除目录

[mdeltree] 删除目录树

[mcopy] 复制文件

[mdel] 删除文件

[mmove] 移动文件

[mren] 更改文件或目录名

[mattrib] 修改文件属性

[mtype] 显示文件内容

[mdu] 查询文件或目录大小

[minfo] 显示磁盘信息

[mformat] 以MS-DOS方式格式化磁盘

[mlabel] 设置磁盘标签

九. 控制外部设备相关命令

[mount] mount上设备

[umount] 解除已经mount上的设备

[eject] 弹出(CD/DVD等)

[fdformat] 格式化软盘

[fdisk] 配置/显示硬盘分区

[mkfs] 格式化磁盘分区

[fsck] 检查/修复磁盘错误

[lpr] 打印到打印机

[lprm] 中断打印任务

[lpq] 显示打印任务的状态

[lpc] 管理/控制打印任务

[ifconfig] 显示/设定NIC配置

十. 进程及任务管理相关命令

[ps] 显示正在运行的进程

[jobs] 显示后台运行任务

[fg] 把任务切换到前台

[bg] 把任务切换到后台

[kill] 中止进程或任务

[killall] 中止进程或任务

[wait] 等待进程或任务的结束

[at] 设置定时执行任务

[atq] 显示尚未执行的任务

[atrm] 删除定时执行任务

[batch] 在系统负荷减轻的时候执行任务

[nice] 改变优先度并执行任务

[nohup] 在后台执行任务,Logout之后也不退出

[sleep] 休眠一定的时间

[crond] 用来定期执行程序的命令

[screen] 可以在多个进程之间多路复用一个物理终端的窗口管理器

十一. 网络管理相关命令

[netstat] 显示当前网络连接状况

[route] 显示/设置路由

[host] 显示网络主机情况

[hostname] 显示/设置当前主机的名字

[ping] 确认和远程机器的连接情况

[traceroute] 显示路由信息

[rwho] 查询网上机器的登陆用户

[ruptime] 查询网上机器的系统运行时间

[rlogin] 登陆到远程机器

[telnet] 用telnet登陆到远程机器

[rsh] 给远程机器发送命令

[rcp] 在远程机器之间复制文件

[mail] 收取邮件

[sendmail] 发送邮件

[mailq] 确认邮件队列

[ftp] 用ftp传输文件

十二. 其他命令

[cal] 显示日历

[clear] 清屏

[gcc] 编译C语言代码

[as] 汇编

[bc] 计算

[rpm] Redhat的包管理

[dpkg] Debian的包管理

[installpkg] Slackware的包安装(删除命令则是removepkg)

[xf86setup ,turboxfg,Xconfigurator] 配置X服务

[startx] 启动 X-Window 图形界面

usr/bin/ld cannot find lxxx 问题

在源码安装 snmp 时,在安装的第一步

./configure --prefix=/usr/local/snmp --with-mib-modules=ucd-snmp/diskio

时出现了错误:

记录一下解决办法。

这是编译软件时常遇到的错误讯息。

/usr/bin/ld: cannot find -lxxx 

其中xxx即表示函式库文件名称,有以下几种情形:

  • 系统没有安装相对应的lib
  • 相对应的lib版本不对
  • lib的symbolic link 不正确,没有连结到正确的函式库文件(.so)

在我的例子中是没有安装 perl 的 lib 文件。于是这么解决:

apt-get install libperl-dev

大功告成。

参考资料