流量突然翻倍的那几天,我其实是开心的。服务器告警弹出来的时候,脑子里第一反应是"业务要起飞了"。但打开后台一看,新注册用户数纹丝不动,在线时长中位数掉到了不到二十秒,连平时最活跃的几个老用户,行为轨迹都变得陌生起来。再翻会话记录,一批又一批"用户"从同一个IP段涌进来,访问路径整齐得像阅兵方阵。那一刻我突然意识到一件事:我的用户,可能根本不是人。
这篇文章不聊哲学,聊的是实实在在的工程问题。过去半年我一直在和"非人类用户"打交道——从最早靠肉眼识别,到后来搭了一套自动化检测系统,中间踩了不少坑,也总结了一些可复用的方法。无论你是独立开发者、数据分析师,还是在大厂做风控或增长,这篇内容应该都能给你一些参考。我会讲清楚机器流量到底长什么样、藏在哪些数据特征里、为什么要分级拦截而不是一刀切,以及当AI Agent成为新一批"用户"之后,产品设计该怎么调整。
1. 一场诡异的流量"繁荣":并发翻倍,收入纹丝不动
先说我是怎么发现问题的。我有个SaaS工具,日常并发在几百左右,某天凌晨两点开始,并发一路飙到两千多,持续了将近三个小时。正常情况下这个时间点应该是低谷,凌晨的流量曲线通常比白天矮一大截。直觉告诉我这不正常,但打开实时监控,看到的却是四平八稳的指标——页面加载正常,接口响应正常,没有报错,也没有明显的高负载拖垮服务。
诡异的地方在于,服务的"访问量"上去了,但业务指标完全没动。注册量没涨,付费转化没涨,连老用户的活跃度都没涨。PV涨了,UV涨了,唯独"人"没涨。我把那段时间的访问日志导出来,筛出凌晨两点的会话记录,翻了大概二十分钟,后背开始发凉:几乎所有的会话都是同一个固定的路径——首页、登录页、某一个接口,然后就没了,停留时间集中在1.2秒到1.8秒之间,标准差小得不像真人会有的行为。
1.1 为什么"流量高但转化差"是第一个警报
"流量高但转化差"这个信号,我能想到的最贴切类比是:一家餐厅门口排了很长的队,但进店的人没有一个坐下来点菜。这时候你要担心的不是厨师出餐慢,而是排队的人是不是真的想吃饭。
流量数据如果只有PV、UV这两个层面,很容易被表面的繁荣骗过去。必须叠加转化漏斗看,才能暴露问题。我自己惯用的做法是拉一条五层漏斗:访问次数→登录行为→核心功能触发→留存行为→付费行为。如果前两层涨了、后三层没动,那前两层的"用户"里大概率混进了非人类访客。反过来,如果全链路一起涨,才更像是真实用户增长带来的结果。
另一个我后来养成的习惯是看时段分布。真人用户的活跃时间服从日出日落规律,工作时段集中,深夜低谷明显。机器人不一样,它不受生物钟约束,可以凌晨三点精准地以每秒几十个请求的节奏扫你的接口。所以当我看到凌晨时段的流量曲线出现"平顶"甚至"尖峰"而不是"深谷"时,直接就会提高警惕。
1.2 从"人肉排查"到"不得不自动化"的转变
发现问题最初的三天,我还在用笨办法排查——手动翻日志,把可疑的IP摘出来,再用IP反查工具验证归属地。这个办法对付几十个可疑会话还行,但等到每秒几百个请求涌进来,你根本翻不过来。人肉筛查效率太低,而且容易被机器人刻意模仿真人行为骗过去。
真正推动我下定决心做自动化的,是一次典型的"打地鼠"经历:晚上封了一批IP,第二天早上发现它们换了一拨IP继续扫,手法一模一样。你封,它就换;你加规则,它就改UA。它们的技术门槛不高,但胜在量大、速度快、不知疲倦,光靠人工根本不在同一个数量级。
于是我决定把思路改掉,不追IP(追不完,而且代理出口IP多的是),转而去识别行为和指纹。机器人的IP可以随便换,但它的行为节奏、浏览器指纹、请求特征这些东西,换起来要困难得多,也更容易露出马脚。这套思路后来演变成为我整个检测体系的地基。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 机器在数据里留下的指纹:从UA到行为节奏
识别"非人用户",本质上是在回答一个问题:这台设备后面坐的到底是一个人,还是一段脚本。没有哪个单一信号能百分之百下结论,但多个信号叠加在一起,置信度就非常可观了。我把这些信号分成四类,每一类都有自己的代表特征和检测逻辑。
2.1 HTTP头与UA:最容易被伪造、也最值得看的起点
很多人觉得Us
