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 控制台中,切勿以明文形式硬编码。
最后更新于