Files
fast-xray/README.md
T
2026-06-23 13:09:37 +08:00

6.2 KiB
Raw Blame History

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 个,并发 5timeout 10s

完整流程:

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
  • 控制台会实时输出 OKFAIL
  • 这一阶段不需要 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 可选 allpinglatencyspeed
-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