6.2 KiB
6.2 KiB
Cloudflare VLESS IP Tester
一个面向 VLESS + WS + TLS 节点的 Cloudflare IP 筛选与真实链路测速工具。
项目分为两类能力:
cfst:从 Cloudflare IPv4 段中随机抽样,筛出 TCP 可连通 IP。auto/xrayst:基于本地 Xray 内核,将候选 IP 写入 VLESS outbound,测试真实代理链路的延迟和下载速度。
最终输出是可直接导入客户端的 VLESS 节点列表,节点别名格式为 速度-延迟-ip,例如 12.34M-156ms-103.21.244.162。
Requirements
| 依赖 | 说明 |
|---|---|
| Python | 3.13+ |
| uv | Python 项目与依赖管理 |
| Xray | 默认路径 tools/xray.exe |
初始化依赖:
uv sync
查看入口命令:
uv run auto
uv run cfst
uv run xrayst
Quick Start
Windows 下推荐直接使用 run.bat:
.\run.bat "vless://你的节点"
run.bat 只接受一个 VLESS 参数,并固定执行:
- 第一阶段随机抽取
3000个 IP,其他参数使用auto默认值。 - 第二阶段保留真实延迟前
200个,其他参数使用auto默认值。 - 第三阶段使用第二阶段全部结果测速,最终保留前
10个,并发5,timeout10s。
完整流程:
uv run auto 'vless://你的节点' -r 1000 -p 10 -c 20 --speed-count 50
这条命令会执行:
- 随机抽取
1000个 Cloudflare IP。 - 第一阶段用 TCP 443 探测连通性。
- 第二阶段用 Xray 测真实代理延迟,并保留延迟最低的
10个。 - 第三阶段从延迟结果中取前
50个做真实下载测速。 - 最终按速度档位和延迟排序,输出前
10个节点到txt/result.txt。
Pipeline
auto.py 支持分阶段运行,前一阶段输出会作为后一阶段输入。
| 阶段 | 命令 | 输入 | 输出 |
|---|---|---|---|
ping |
uv run auto --stage ping -r 1000 -c 20 |
Cloudflare IPv4 段 | txt/auto_01_ping_ips.txt |
latency |
uv run auto --stage latency 'vless://你的节点' -p 200 -c 20 |
txt/auto_01_ping_ips.txt |
txt/auto_02_latency.txt |
speed |
uv run auto --stage speed 'vless://你的节点' --speed-count 50 -p 10 |
txt/auto_02_latency.txt |
txt/result.txt |
Stage 1: Ping
随机抽取 Cloudflare IP,并测试 TCP 443 是否可连通。
uv run auto --stage ping -r 1000 -c 20
行为:
- 通过的 IP 会实时追加写入
txt/auto_01_ping_ips.txt。 - 控制台会实时输出
OK或FAIL。 - 这一阶段不需要 VLESS 节点。
Stage 2: Latency
读取第一阶段输出,通过 Xray 临时代理测试真实 VLESS 链路延迟。
uv run auto --stage latency 'vless://你的节点' -p 200 -c 20
配置:
| 项 | 值 |
|---|---|
| 输入文件 | txt/auto_01_ping_ips.txt |
| 输出文件 | txt/auto_02_latency.txt |
| 测试地址 | https://www.google.com/generate_204 |
| Timeout | 3s |
| 排序规则 | 延迟低的优先 |
-p 控制这一阶段保留多少个结果。
Stage 3: Speed
读取第二阶段输出,通过 Xray 临时代理测试真实下载速度。
uv run auto --stage speed 'vless://你的节点' --speed-count 50 -p 10 --speed-concurrency 1 --speed-timeout 10
配置:
| 项 | 值 |
|---|---|
| 输入文件 | txt/auto_02_latency.txt |
| 输出文件 | txt/result.txt |
| 下载地址 | https://cachefly.cachefly.net/50mb.test |
| 实际读取 | 10MB |
| Timeout | 10s |
排序规则:
- 速度每
1 Mbps一个档位。 - 速度档位高的优先。
- 同档位按延迟低的优先。
参数关系:
--speed-count:从第二阶段结果中取多少个 IP 做速度测试,0表示全部。--speed-concurrency:第三阶段速度测试并发数,默认1。--speed-timeout:第三阶段单个下载测速 timeout,默认10s。-p:最终写入txt/result.txt的节点数量。
VLESS Rewrite
输入节点示例:
vless://uuid@xxxxxxx:443?encryption=none&security=tls&type=ws&path=%2Fpath#name
测试某个候选 IP 时,工具会生成等价 Xray outbound:
| 字段 | 值 |
|---|---|
| outbound address | 候选 IP |
| outbound port | 443 |
| TLS SNI | 原始域名 |
| WebSocket Host | 原始域名 |
| WebSocket path | 原始 path |
最终节点示例:
vless://uuid@xxxx-ip:443?encryption=none&security=tls&insecure=0&allowInsecure=0&type=ws&host=xxxx&path=%2Fpath#12.34M-156ms-xxxx-ip
Commands
auto
主入口,支持完整流程和分阶段运行。
uv run auto [node] [options]
常用参数:
| 参数 | 默认值 | 说明 |
|---|---|---|
--stage |
all |
可选 all、ping、latency、speed |
-r, --random-count |
100 |
第一阶段随机抽取的 IP 数量 |
-p, --top |
10 |
当前阶段保留数量;speed 阶段表示最终输出数量 |
-c, --concurrency |
20 |
ping 和 latency 阶段并发数 |
--speed-count |
0 |
speed 阶段取多少个延迟结果测试速度,0 表示全部 |
--speed-concurrency |
1 |
speed 阶段并发测速数量 |
--speed-timeout |
10 |
speed 阶段单个下载测速 timeout 秒数 |
--xray |
tools/xray.exe |
Xray 内核路径 |
--ping-output |
txt/auto_01_ping_ips.txt |
第一阶段输出 |
--latency-output |
txt/auto_02_latency.txt |
第二阶段输出 |
-o, --output |
txt/result.txt |
最终节点输出 |
run.bat
Windows 批处理入口,用于固定执行推荐三阶段流程。
.\run.bat "vless://你的节点"
等价于依次执行:
uv run auto --stage ping -r 3000
uv run auto --stage latency "vless://你的节点" -p 200
uv run auto --stage speed "vless://你的节点" --speed-count 0 -p 10 --speed-concurrency 5 --speed-timeout 10
cfst
Cloudflare IPv4 探测工具。
uv run cfst --fetch --pick-count 300 -p 20
用途:
- 拉取 Cloudflare IPv4 段。
- 随机抽样测试 TCP 或 ICMP 连通性。
- 输出较快 IP 和完整 CSV。
xrayst
对指定 IP 或 IP 组做真实 Xray 测试。
uv run xrayst --node 'vless://你的节点' --ip 103.21.244.162
uv run xrayst --node 'vless://你的节点' --ips 103.21.244.162,104.18.178.45