Cloudflare Workers
在网站前部署一个 Worker,检查每位访客,并把结果告知您的源服务器。
快速上手
也可以使用上方的部署按钮。
git clone https://github.com/ipscanner/ipscanner-cloudflare
cd ipscanner-cloudflare
npm install
npx wrangler deploynpx wrangler secret put IPSCANNER_API_KEY使用自定义域名或 workers.dev 时,请改为将 ORIGIN_URL 设为您的后端地址。
"routes": [{
"pattern": "example.com/*",
"zone_name": "example.com"
}]工作原理
Worker 读取访客的 IP、User-Agent,以及 Cloudflare 提供的 JA4。
Agentscan 与 IP Detection 并行运行,按访客缓存,1.5 秒无响应即放行请求。
monitor 模式向源服务器发送判定请求头。enforce 模式还会对被拦截的访客返回 403。
已验证的爬虫始终放行,客户端自行发送的 X-IPScanner-* 请求头会被移除。
请求头
检查失败或被跳过时,仅设置 X-IPScanner-Status。
| 请求头 | 来源 | 示例 |
|---|---|---|
| X-IPScanner-ClassAgentscan | Agentscan | human |
| X-IPScanner-ActionAgentscan | Agentscan | allow |
| X-IPScanner-ConfidenceAgentscan | Agentscan | 0.92 |
| X-IPScanner-Network-ClassIP Detection | IP Detection | residential_clean |
| X-IPScanner-Anonymized两者 | 两者 | false |
| X-IPScanner-RiskIP Detection | IP Detection | 12 |
| X-IPScanner-CountryIP Detection | IP Detection | DE |
| X-IPScanner-StatusWorker | Worker | ok |
配置
在 wrangler.jsonc 的 vars 块中设置。
| 变量 | 默认值 | 作用 |
|---|---|---|
| MODEmonitor 添加请求头,enforce 还会拦截 | monitor | monitor 添加请求头,enforce 还会拦截 |
| CHECK_AGENT运行 Agentscan | true | 运行 Agentscan |
| CHECK_IP运行 IP Detection | true | 运行 IP Detection |
| BLOCK_CLASSESenforce 模式下拦截的 Agentscan 类别 | malicious_automation | enforce 模式下拦截的 Agentscan 类别 |
| BLOCK_ANONYMIZEDenforce 模式下同时拦截 VPN、代理和 Tor | false | enforce 模式下同时拦截 VPN、代理和 Tor |
| TIMEOUT_MS每次调用的时限,超时后放行请求 | 1500 | 每次调用的时限,超时后放行请求 |
| AGENT_TTLAgentscan 判定结果的缓存秒数 | 600 | Agentscan 判定结果的缓存秒数 |
| IP_TTLIP 查询结果的缓存秒数 | 3600 | IP 查询结果的缓存秒数 |
| SKIP_PATHS跳过检查的路径正则 | 静态资源 | 跳过检查的路径正则 |
| ORIGIN_URL未配置路由时转发的后端地址 | 空 | 未配置路由时转发的后端地址 |
常见问题