公众号旧文
为什么很多网站的机器人访问量比真人还多?
大家上网时,可能都见到过这样的页面:

有时候会自动通过,
有时候还需要点一下:
“确认您是真人”
很多人看到页面都会觉得奇怪:
我是真人啊,为什么还要我确认我是不是真人?
原因很简单:对于很多网站来说,访问者里机器人可能比真人还多。
一、互联网里其实有大量机器人
在写这篇文章之前,我一直以为一个网站的访问者大多数都是真人。
但现实并不是这样。
互联网上存在着大量的自动程序,也叫 Bot(机器人)。
这些程序会自动访问网站,比如:
- 搜索引擎爬虫
- 数据采集程序
- 自动监控工具
- 漏洞扫描程序
例如搜索引擎,其实就是一个巨大的爬虫系统。
它每天都会访问无数网站,把网页抓取回去建立索引。
但除了这些正常爬虫,还有很多恶意程序。
比如:
- 暴力破解登录密码
- 扫描网站漏洞
- 抓取网站数据
- 抢票、抢商品
这些程序通常会以非常高的频率访问网站。
如果不加限制,很容易把服务器拖垮。
二、真实情况可能比你想象的更夸张
我自己也运营着一个小网站。
我刚查看服务器访问日志,统计了一下访问来源:
zcat -f /var/log/nginx/*access.log* | awk
'{print $1}'
|
sort
|
uniq
-c |
sort
-nr
结果发现访问次数最多的,并不是普通用户,而是一堆陌生的 IP:
次数 IP
1568 185.177.72.51
1544 185.177.72.30
1433 185.177.72.49
1208 3.113.24.102
1106 152.32.216.41
1104 101.36.124.31
这些 IP 在短时间内访问了上千次。
而真正的用户,访问次数通常只有几次到十几次,最多几十次。
换句话说:访问网站最多的,往往不是人,而是各种自动程序。
三、很多机器人来自数据中心
如果再进一步查询这些 IP,会发现很多来自:
- 云服务器
- 数据中心
- 扫描器网络
这些程序通常在做一些事情,比如:
- 扫描网站漏洞
- 搜索后台入口
- 收集网页数据
- 尝试破解密码
很多扫描器甚至会不停尝试访问这些路径:
/admin
/login
/phpmyadmin
/wp-login.php
只要某个网站存在漏洞,就可能被自动程序发现。
四、机器人为什么这么多?
原因也很简单:机器人访问网站的成本极低。
一个程序可以:
- 同时访问成千上万个网站
- 24 小时不停运行
- 每秒发送几十甚至上百个请求
而真人访问网站通常是:
- 打开页面
- 看几秒或几十秒
- 再点击下一页
两者的访问频率完全不在一个数量级。
所以在很多网站的统计里:机器人流量可能会占到一半甚至更多。
五、这就是“人机验证”存在的原因
正因为互联网里存在大量机器人,所以很多网站都会增加一道简单的防护:
人机验证。
当系统发现某个访问行为像机器人时,就会弹出一个验证页面,比如:
- 执行安全验证
- 确认您是真人
- 我不是机器人
只有通过验证,才能继续访问网站。
这样就可以把大量自动程序挡在外面。
下次当你再看到网站要求你确认“是不是机器人”时,其实并不是在怀疑你。
而是在防范互联网里大量的自动程序。
因为在今天的互联网里:
访问网站的程序,可能真的比人还多。