Skip to Content

Cloudflare Workers

在边缘网络拦截流量是使用 ProxyTracer 最高效的方式。通过在 Cloudflare Worker 中部署此中间件,恶意请求将在 CDN 节点直接被阻断,绝不消耗源站服务器的计算资源。

代码实现

此代码片段使用 Cloudflare 原生请求头提取真实客户端 IP,快速查询 ProxyTracer API,并在检测到代理时立即返回严格的 403 Forbidden 响应。

export default { async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response> { // 1. 提取真实 IP(Cloudflare 原生提供此信息) const ip = request.headers.get("cf-connecting-ip"); // 若未找到 IP(例如本地开发环境)则直接放行 if (!ip) { return fetch(request); } try { // 2. 查询 ProxyTracer API const ptResponse = await fetch(`https://api.proxytracer.com/v1/check/${ip}`, { method: "GET", headers: { "Authorization": `Bearer ${env.PROXYTRACER_API_KEY}` } }); if (ptResponse.ok) { const data = await ptResponse.json(); // 3. 若检测到代理/VPN,则立即丢弃连接 if (data.proxy === true) { return new Response( JSON.stringify({ error: "Access Denied: VPN or Proxy detected." }), { status: 403, headers: { "Content-Type": "application/json" } } ); } } } catch (error) { // 故障开放(Fail-open):若 API 不可达,放行流量以确保可用性 console.error("ProxyTracer API Error:", error); } // 4. 正常流量继续放行至源站服务器 return fetch(request); } };

安全提示:请始终将您的 PROXYTRACER_API_KEY 作为加密 Secret 存储在 Cloudflare Worker 控制台中,切勿以明文形式硬编码。

最后更新于