CF-Workers-CheckProxyIP 详细部署教程

CF-Workers-CheckProxyIP 是一个部署在 Cloudflare Workers 上的轻量级 ProxyIP 验证工具。它提供了一个可直接使用的 Web 界面,能快速检测单个或批量 IP、域名作为代理节点的可用性,并展示出口 IP 地理位置和网络信息。本教程将指导你从零开始完成部署与使用。

目录

  1. 项目功能概览
  2. 准备工作
  3. 快速部署(推荐方式)
  4. 配置与自定义
  5. 使用方法详解
  6. 核心API接口说明
  7. 常见问题与解决

项目功能概览

这是一个单文件 Worker 应用(核心文件仅为 _worker.js),集成了以下功能:

  • 单目标/批量检测:支持单条输入或多行批量检测,批量模式下自动去重、分批解析域名,并以 32 并发检测。
  • 多种输入格式:支持 IPv4、IPv6(加方括号)、域名,并可指定端口(默认 443)。
  • 特殊解析能力:自动解析域名的 A/AAAA/TXT 记录,TXT 记录可按逗号拆分为多个目标,域名中含 .tp端口. 可强制指定端口。
  • 可视化结果:显示成功/失败状态、响应时间、出口 IP、国家旗帜、ASN 信息,并在地图上绘制出口到 Cloudflare 机房的连线。

准备工作

必备条件

  • Cloudflare 账户:你需要有一个 Cloudflare 账号来管理 Workers。
  • 可访问互联网的环境:部署和检测过程需要访问公共 DNS 和探针服务。

技术知识

  • 基础:了解如何登录网站、复制粘贴文本。
  • 进阶(可选):如果想自定义代码,具备基础的 JavaScript 知识会有帮助。

快速部署(推荐方式)

这是最直接的方式,通过 Cloudflare Workers 控制台完成。

第一步:获取 Worker 代码

  1. 访问项目 GitHub 仓库:https://github.com/cmliu/CF-Workers-CheckProxyIP
  2. 点击文件列表中的 _worker.js 文件。
  3. 点击页面右侧的“Raw”按钮,或者直接选中所有代码(Ctrl+ACmd+A),复制完整内容。

第二步:创建并部署 Worker

  1. 登录 Cloudflare Dashboard
  2. 在左侧菜单中,点击 “Workers 和 Pages”
  3. 点击 “创建应用程序” -> “创建 Worker”
  4. 为你的 Worker 起一个名称(如 proxy-checker),然后点击“部署”。
  5. 部署成功后,点击 “编辑代码”
  6. 在在线编辑器中,删除所有默认的示例代码。
  7. 将第一步复制的 _worker.js 代码完整粘贴到编辑器中。
  8. 点击右上角的 “保存并部署”

第三步:访问你的检测工具

部署完成后,Worker 会分配一个默认域名:https://<你的Worker名称>.<你的子域>.workers.dev。在浏览器中打开这个地址,你就能看到检测工具的 Web 界面了。


配置与自定义

本项目可以通过环境变量和修改代码进行简单定制。

环境变量(可选)

在 Worker 的“设置” -> “变量”中,可以添加以下环境变量:

变量名 说明 示例
BEIAN 自定义页面底部的页脚 HTML 内容,可用于显示备案信息或版权声明。 © 2026 我的网站 · 粤ICP备12345678号

设置后,页面底部的默认内容会被替换。

前端展示定制

你可以直接修改 _worker.jsgenerateHTML() 函数返回的 HTML 字符串,来调整页面标题、颜色、标志等。主要修改点:

  • 页面标题:在 <title> 标签中。
  • 品牌标志:在页面顶部的标题区域。

更换检测探针(高级)

默认情况下,/check 接口通过访问 ipv4.090227.xyzipv6.090227.xyz 来判断代理出口能力。如需更换,可在 _worker.js 中搜索 PROBE_TARGETS 数组进行修改。


使用方法详解

1. 单条检测模式

  • 操作:在输入框中输入一个目标(如 8.223.63.150proxyip.example.com:8443),按下键盘 Enter 键或点击 “开始检测” 按钮。
  • 结果:页面会显示检测状态、响应时间、出口 IP、国家旗帜、ASN 信息,并在地图上绘制从出口 IP 到 Cloudflare 检测机房的连线。
  • 历史记录:你检测过的单条目标会被保存在浏览器本地,方便快速再次选择。

2. 批量检测模式

  • 开启:点击输入区域下方的 “批量检测” 开关。
  • 操作:在输入框中,每行输入一个目标。支持逗号(英文或中文)自动转换为换行。完成后,按下 Ctrl + Enter(Windows)或 Cmd + Enter(Mac)组合键,或点击按钮开始。
  • 处理流程
    1. 前端会先对 IPv4/IPv6 进行本地识别和归一化。
    2. 对输入去重。
    3. 将域名目标按每批 15 个提交给后端解析(避免子请求数限制)。
    4. 解析成功后,所有候选目标以 32 个并发 进行检测。
  • 结果:批量结果会以列表形式清晰展示每个目标的检测状态、响应时间和出口信息。

3. 路径直达检测(分享链接)

你可以通过 URL 路径直接触发对某个目标的检测,方便分享。格式为:
https://<你的Worker域名>/<目标IP或域名>
例如:https://proxy-checker.xxx.workers.dev/8.223.63.150:8443
访问此链接,页面会自动加载并开始检测该目标。


核心API接口说明

该项目内置了几个 API 接口,供前端调用或外部集成。

GET / (页面)

返回完整的 Web 检测界面 HTML。

GET /resolve?proxyip=<目标>

用途:解析单个输入,返回候选目标列表(数组)。
示例:请求 /resolve?proxyip=example.com 可能返回 ["192.0.2.1:443", "[2001:db8::1]:443"]

POST /resolve-batch

用途:批量解析域名列表。
请求体{ "targets": ["example.com", "test.net:8080"] }
返回:每个输入对应的解析结果数组或错误信息。

GET /check?proxyip=<候选目标>[&timeoutMs=9999]

用途这是核心检测接口。检测一个具体的候选目标(格式如 IP:端口)是否可用。
返回示例(成功)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"candidate": "8.223.63.150:443",
"success": true,
"proxyIP": "8.223.63.150",
"responseTime": 215,
"colo": "HKG",
"probe_results": {
"ipv4": {
"ok": true,
"exit": {
"ip": "198.51.100.20",
"country": "Hong Kong",
"asOrganization": "Cloudflare",
"loc": "22.3193,114.1694"
}
}
}
}

前端会使用 success 字段判断是否可用,并从 exit 对象中提取位置和网络信息进行展示。

GET /locations

用途:代理 Cloudflare 官方的机房位置数据,供地图功能使用。


常见问题与解决

  • Q: 部署后页面显示不正常,或地图/旗帜图标加载失败?
    • A: 页面依赖外部资源(如 OpenStreetMap 地图、国旗图片、Google 字体)。如果你的网络环境无法访问这些资源,会导致显示异常。你可以考虑修改 _worker.js 中的资源链接,替换为国内可访问的 CDN 或镜像地址。
  • Q: 检测结果总是失败(success: false)?
    • A: 可能原因:
      1. 目标 IP/端口确实不可用。
      2. 检测依赖的探针服务 ipv4.090227.xyzipv6.090227.xyz 不可达。
      3. Worker 运行环境网络问题。可以尝试更换探针地址(参考 配置与自定义 部分)。
  • Q: 批量检测时,解析域名失败或进度卡住?
    • A: 检查输入的域名是否正确。后端解析使用 Cloudflare DoH (cloudflare-dns.com),请确保你的 Worker 可以访问此服务。另外,批量解析有并发和超时限制(每批15个,3秒超时),过多或响应慢的域名可能导致部分失败。
  • Q: 如何将检测结果导出或分享?
    • A: 当前版本没有内置导出功能。但你可以直接复制页面上的结果文本,或通过浏览器的“打印”功能保存为 PDF。分享检测链接可使用路径直达功能。
  • Q: 这个工具安全吗?我的代理IP信息会泄露吗?
    • A: 所有检测请求都通过你的 Cloudflare Worker 进行,代码是开源的。但请注意,Worker 的访问日志可能会被 Cloudflare 记录。同时,检测结果会通过浏览器展示,请注意不要在公开场合分享含有敏感信息的页面。

通过以上步骤,你应该已经成功部署并使用 CF-Workers-CheckProxyIP 来验证代理 IP 的可用性了。这个轻量级工具非常适合需要快速筛选或分享代理节点的场景。