Thanks to visit codestin.com
Credit goes to github.com

Skip to content

raybowliu/yx-tools

 
 

Repository files navigation

Cloudflare SpeedTest 跨平台自动化工具

Version Python Platform License

一个功能强大的跨平台Cloudflare测速工具,支持全球97个数据中心机场码映射,提供常规测速和优选反代功能。

当前版本:v2.2.3

主要功能

常规测速

  • 全球97个数据中心 - 支持完整的Cloudflare机场码映射
  • 智能测速 - 自动下载最新IP列表,支持自定义参数
  • 结果分析 - 生成详细的CSV格式测速报告
  • IPv4/IPv6支持 - 支持IPv4和IPv6地址测速

小白快速测试

  • 一键测速 - 简单输入3个参数即可开始测试
  • 全自动模式 - 无需选择地区,自动测试所有IP
  • 适合新手 - 专为新手设计,操作简单

优选反代

  • CSV文件处理 - 从测速结果中提取最优IP
  • 反代列表生成 - 自动生成ips_ports.txt反代配置
  • 多格式支持 - 兼容各种CSV文件格式

结果上报

  • Cloudflare Workers API - 支持上报到Cloudflare Workers API
  • GitHub仓库上传 - 支持上传到GitHub公开仓库
  • 批量上传 - 支持批量上传优选IP结果
  • 自动格式化 - 自动格式化IP列表(包含注释)

命令行支持

  • 命令行模式 - 支持命令行参数运行
  • 自动化脚本 - 适合集成到自动化流程
  • 参数配置 - 支持所有功能的命令行参数配置

定时任务设置(Linux/OpenWrt)

  • 自动检测环境 - 自动检测Linux和OpenWrt系统
  • Cron任务设置 - 支持设置Cron定时任务
  • 智能检测 - 自动检测是否已有类似任务
  • 灵活管理 - 支持清理现有任务或继续添加
  • 使用绝对路径 - 自动使用绝对路径,确保定时任务正确执行

Docker容器化支持

  • Docker镜像 - 提供官方Docker镜像,开箱即用
  • Docker Compose - 支持Docker Compose一键部署
  • 数据持久化 - 支持挂载数据目录,保存测速结果
  • 多架构支持 - 支持amd64和arm64架构
  • 环境隔离 - 容器化运行,环境干净整洁

支持平台

平台 架构 状态
Windows x64 完全支持
Windows ARM64 完全支持
macOS Intel 完全支持
macOS Apple Silicon 完全支持
Linux x64 完全支持
Linux ARM64 完全支持

快速开始

方法一:交互式模式(推荐新手)

# 克隆项目
git clone https://github.com/byJoey/yx-tools.git
cd yx-tools

# 安装依赖
pip install -r requirements.txt

# 运行程序(交互式模式)
python3 cloudflare_speedtest.py

方法二:命令行模式(推荐自动化)

# 克隆项目
git clone https://github.com/byJoey/yx-tools.git
cd yx-tools

# 安装依赖
pip install -r requirements.txt

# 运行程序(命令行模式)
python3 cloudflare_speedtest.py --mode beginner --count 10 --speed 1 --delay 1000

# 查看帮助
python3 cloudflare_speedtest.py --help

方法三:使用预编译版本

Releases 页面下载对应平台的可执行文件:

  • CloudflareSpeedTest-windows-amd64.exe - Windows x64
  • CloudflareSpeedTest-macos-amd64 - macOS Intel
  • CloudflareSpeedTest-macos-arm64 - macOS Apple Silicon
  • CloudflareSpeedTest-linux-amd64 - Linux x64
  • CloudflareSpeedTest-linux-arm64 - Linux ARM64

方法四:使用Docker(推荐容器化部署)

直接拉取预构建镜像(最简单)

# 拉取最新镜像
docker pull ghcr.io/byjoey/yx-tools:latest

# 运行容器(交互模式 - 前台运行)
# 如果设置了定时任务,容器会自动保持运行
docker run -it --name cloudflare-speedtest \
  -v $(pwd)/data:/app/data \
  -v $(pwd)/config:/app/config \
  --restart unless-stopped \
  ghcr.io/byjoey/yx-tools:latest

# 运行容器(交互模式 - 后台运行,退出终端不中断)
# 推荐方式:先后台运行,再进入容器设置
docker run -d --name cloudflare-speedtest \
  -v $(pwd)/data:/app/data \
  -v $(pwd)/config:/app/config \
  --restart unless-stopped \
  ghcr.io/byjoey/yx-tools:latest

# 然后进入容器设置定时任务
docker exec -it cloudflare-speedtest python3 /app/cloudflare_speedtest.py

# 运行容器(命令行模式)
docker run -it --rm \
  -v $(pwd)/data:/app/data \
  -v $(pwd)/config:/app/config \
  ghcr.io/byjoey/yx-tools:latest \
  --mode beginner --count 10 --speed 1 --delay 1000

# 拉取特定版本
docker pull ghcr.io/byjoey/yx-tools:v2.2.3

# 查看所有可用标签
# 访问: https://github.com/byJoey/yx-tools/pkgs/container/yx-tools

使用Docker Compose(推荐)

# 克隆项目
git clone https://github.com/byJoey/yx-tools.git
cd yx-tools

# 创建数据目录
mkdir -p data config

# 使用Docker Compose运行(交互模式)
docker-compose run --rm cloudflare-speedtest

# 使用Docker Compose运行(命令行模式)
docker-compose run --rm cloudflare-speedtest --mode beginner --count 10 --speed 1 --delay 1000

本地构建镜像

# 克隆项目
git clone https://github.com/byJoey/yx-tools.git
cd yx-tools

# 构建镜像
docker build -t cloudflare-speedtest:latest .

# 运行容器(交互模式)
docker run -it --rm \
  -v $(pwd)/data:/app/data \
  -v $(pwd)/config:/app/config \
  cloudflare-speedtest:latest

# 运行容器(命令行模式)
docker run -it --rm \
  -v $(pwd)/data:/app/data \
  -v $(pwd)/config:/app/config \
  cloudflare-speedtest:latest \
  --mode beginner --count 10 --speed 1 --delay 1000

# 后台运行并设置定时任务
docker run -d --name cloudflare-speedtest \
  -v $(pwd)/data:/app/data \
  -v $(pwd)/config:/app/config \
  --restart unless-stopped \
  cloudflare-speedtest:latest \
  --mode beginner --count 10 --speed 1 --delay 1000

Docker内定时任务设置

容器内已集成cron服务,支持在容器内设置定时任务,定时任务会自动持久化到 /app/config/crontab 文件,容器重启后会自动恢复

方法一:交互模式设置(推荐)

方式A:前台运行(使用 -it)

# 1. 前台运行容器(交互模式)
docker run -it --name cloudflare-speedtest \
  -v $(pwd)/data:/app/data \
  -v $(pwd)/config:/app/config \
  --restart unless-stopped \
  ghcr.io/byjoey/yx-tools:latest

# 2. 在交互模式中选择设置定时任务
# 3. 设置完成后,定时任务会自动保存到 ./config/crontab
# 4. 容器会保持运行,定时任务会按计划执行
# 5. 使用 Ctrl+P, Ctrl+Q 分离容器(不停止容器)
# 6. 或者直接关闭终端,容器会继续运行(因为设置了 --restart unless-stopped)
# 7. 即使容器重启,定时任务也会自动恢复

方式B:后台运行(使用 -d,推荐)

# 1. 后台运行容器
docker run -d --name cloudflare-speedtest \
  -v $(pwd)/data:/app/data \
  -v $(pwd)/config:/app/config \
  --restart unless-stopped \
  ghcr.io/byjoey/yx-tools:latest

# 2. 进入容器设置定时任务(交互模式)
docker exec -it cloudflare-speedtest python3 /app/cloudflare_speedtest.py

# 3. 在交互模式中选择设置定时任务
# 4. 设置完成后,定时任务会自动保存到 ./config/crontab
# 5. 容器会保持运行,定时任务会按计划执行
# 6. 退出终端不影响容器运行
# 7. 即使容器重启,定时任务也会自动恢复

方法二:使用环境变量自动设置

docker-compose.yml 中配置:

environment:
  - CRON_SCHEDULE=0 2 * * *  # 每天凌晨2点
  - CRON_COMMAND=python3 /app/cloudflare_speedtest.py --mode beginner --count 10 --speed 1 --delay 1000

或使用Docker命令:

docker run -d --name cloudflare-speedtest \
  -v $(pwd)/data:/app/data \
  -v $(pwd)/config:/app/config \
  -e CRON_SCHEDULE="0 2 * * *" \
  -e CRON_COMMAND="python3 /app/cloudflare_speedtest.py --mode beginner --count 10 --speed 1 --delay 1000" \
  --restart unless-stopped \
  ghcr.io/byjoey/yx-tools:latest

方法三:手动编辑crontab

# 进入容器
docker exec -it cloudflare-speedtest bash

# 编辑crontab
crontab -e

# 查看定时任务
crontab -l

# 退出容器后,定时任务会自动保存

Cron时间格式示例:

  • 0 2 * * * - 每天凌晨2点
  • 0 */6 * * * - 每6小时
  • */30 * * * * - 每30分钟
  • 0 3 * * 1 - 每周一凌晨3点

定时任务持久化说明:

  • ✅ 定时任务自动保存到 ./config/crontab 文件
  • ✅ 容器重启后自动恢复定时任务
  • ✅ 每5分钟自动保存一次,确保不丢失
  • ✅ 退出终端不影响容器运行(使用 -d 后台运行)

Docker使用说明

  • 预构建镜像:可直接从 GitHub Container Registry 拉取,无需本地构建
  • 镜像地址ghcr.io/byjoey/yx-tools:latest
  • 定时任务:容器内已集成cron服务,支持在容器内设置定时任务(容器需24小时运行)
  • 定时任务持久化:定时任务自动保存到 ./config/crontab,容器重启后自动恢复
  • 后台运行:使用 -d 参数后台运行,退出终端不影响容器运行
  • 数据持久化:结果文件会保存在 ./data 目录中
  • 配置文件:配置文件会保存在 ./config 目录中(包括crontab)
  • 网络访问:容器需要网络访问来下载IP列表和上传结果
  • 时区设置:默认使用 Asia/Shanghai 时区
  • 架构支持:镜像包含 amd64 和 arm64 版本的 CloudflareST 可执行文件,支持多架构自动选择

容器管理命令

# 查看容器状态
docker ps -a | grep cloudflare-speedtest

# 查看容器日志
docker logs cloudflare-speedtest

# 查看定时任务
docker exec -it cloudflare-speedtest crontab -l

# 编辑定时任务
docker exec -it cloudflare-speedtest crontab -e

# 停止容器
docker stop cloudflare-speedtest

# 启动容器(定时任务会自动恢复)
docker start cloudflare-speedtest

# 重启容器(定时任务会自动恢复)
docker restart cloudflare-speedtest

# 删除容器(不会删除数据,数据在挂载的目录中)
docker rm cloudflare-speedtest

独立网络配置(软路由环境)

在软路由环境中使用Docker时,建议为容器分配独立IP,并在软路由中将该IP设置为不走代理。

方法一:使用 Docker Compose 配置独立网络

# docker-compose.yml
version: '3.8'

services:
  cloudflare-speedtest:
    build:
      context: .
      dockerfile: Dockerfile
    image: cloudflare-speedtest:latest
    container_name: cloudflare-speedtest
    volumes:
      - ./data:/app/data
      - ./config:/app/config
    networks:
      isolated_network:
        ipv4_address: 172.20.0.10  # 指定独立IP
    environment:
      - TZ=Asia/Shanghai
      - PYTHONUNBUFFERED=1
    restart: unless-stopped

networks:
  isolated_network:
    driver: bridge
    ipam:
      config:
        - subnet: 172.20.0.0/16
          gateway: 172.20.0.1

方法二:使用 Docker 命令配置独立网络

# 1. 创建独立网络
docker network create \
  --driver bridge \
  --subnet=172.20.0.0/16 \
  --gateway=172.20.0.1 \
  isolated_network

# 2. 运行容器并指定独立IP
docker run -d --name cloudflare-speedtest \
  --network isolated_network \
  --ip 172.20.0.10 \
  -v $(pwd)/data:/app/data \
  -v $(pwd)/config:/app/config \
  --restart unless-stopped \
  ghcr.io/byjoey/yx-tools:latest

方法三:使用 Macvlan 网络(推荐软路由)

Macvlan 网络允许容器直接使用物理网络接口,获得独立的 MAC 地址和 IP:

# 1. 创建 Macvlan 网络(需要根据实际网络接口调整)
docker network create -d macvlan \
  --subnet=192.168.1.0/24 \
  --gateway=192.168.1.1 \
  -o parent=eth0 \
  macvlan_network

# 2. 运行容器并指定独立IP
docker run -d --name cloudflare-speedtest \
  --network macvlan_network \
  --ip 192.168.1.100 \
  -v $(pwd)/data:/app/data \
  -v $(pwd)/config:/app/config \
  --restart unless-stopped \
  ghcr.io/byjoey/yx-tools:latest

软路由代理设置

配置独立IP后,需要在软路由中将该IP设置为不走代理:

  1. OpenWrt/Lede

    • 进入"网络" → "负载均衡" → "规则"
    • 添加规则:源地址为容器IP(如 192.168.1.100),动作选择"直连"或"不走代理"
  2. PassWall/Clash

    • 进入"访问控制" → "局域网设备"
    • 添加设备规则:IP地址为容器IP,策略选择"直连"或"DIRECT"
  3. V2Ray/Xray

    • 在路由规则中添加:
    {
      "type": "field",
      "ip": ["192.168.1.100/32"],
      "outboundTag": "direct"
    }

注意事项

  • 确保容器IP与软路由在同一网段
  • 确保容器IP未被其他设备占用
  • 配置后测试容器网络连接是否正常
  • Macvlan 网络需要根据实际网络接口名称调整 parent 参数(如 eth0br-lan 等)

使用指南

方法一:交互式模式(推荐新手)

macOS/Linux 权限设置

chmod 755 可执行文件拽到终端回车
可执行文件拽到终端回车
如果还是不行 请执行sudo spctl --master-disable
依然不行 xattr -d com.apple.quarantine 可执行文件拽到终端回车

运行程序

python3 cloudflare_speedtest.py

选择功能:

功能选择:
  1. 小白快速测试 - 简单输入,适合新手
  2. 常规测速 - 测试指定机场码的IP速度
  3. 优选反代 - 从CSV文件生成反代IP列表

请选择功能 [默认: 1]: 1

方法二:命令行模式(推荐自动化)

命令行模式适合自动化脚本、定时任务、CI/CD等场景,支持所有功能通过参数配置。

基本用法

小白快速测试模式

# 使用默认参数(10个IP,速度1MB/s,延迟1000ms)
python3 cloudflare_speedtest.py --mode beginner

# 指定测试参数
python3 cloudflare_speedtest.py --mode beginner --count 20 --speed 2 --delay 500

# 使用IPv6测试
python3 cloudflare_speedtest.py --mode beginner --ipv6

# 高质量测试(50个IP,速度5MB/s,延迟200ms)
python3 cloudflare_speedtest.py --mode beginner --count 50 --speed 5 --delay 200

# 快速测试(5个IP,速度0.5MB/s,延迟2000ms)
python3 cloudflare_speedtest.py --mode beginner --count 5 --speed 0.5 --delay 2000

常规测速模式

# 测试指定地区(香港)
python3 cloudflare_speedtest.py --mode normal --region HKG --count 10

# 测试指定地区(新加坡),指定速度和延迟
python3 cloudflare_speedtest.py --mode normal --region SIN --count 20 --speed 5 --delay 300

# 测试指定地区(东京),使用IPv6
python3 cloudflare_speedtest.py --mode normal --region NRT --count 15 --ipv6

# 测试指定地区(洛杉矶),高质量测试
python3 cloudflare_speedtest.py --mode normal --region LAX --count 50 --speed 10 --delay 200

优选反代模式

# 从默认CSV文件生成反代列表
python3 cloudflare_speedtest.py --mode proxy

# 从指定CSV文件生成反代列表
python3 cloudflare_speedtest.py --mode proxy --csv result.csv

# 从自定义路径的CSV文件生成反代列表
python3 cloudflare_speedtest.py --mode proxy --csv /path/to/result.csv

完整参数说明

参数 说明 默认值 必需 示例
--mode 运行模式 - beginner/normal/proxy
--ipv6 使用IPv6(默认IPv4) IPv4 --ipv6
--count 测试IP数量 10 --count 20
--speed 下载速度下限 (MB/s) 1.0 --speed 2
--delay 延迟上限 (ms) 1000 --delay 500
--region 地区码(常规测速模式需要) - ⚠️ --region HKG
--csv CSV文件路径(优选反代模式) result.csv --csv result.csv
--upload 上传方式 none api/github/none
--worker-domain Worker域名(API上传需要) - ⚠️ --worker-domain example.com
--uuid UUID或路径(API上传需要) - ⚠️ --uuid abc123
--repo GitHub仓库路径(GitHub上传需要) - ⚠️ --repo owner/repo
--token GitHub Token(GitHub上传需要) - ⚠️ --token ghp_xxx
--file-path GitHub文件路径 cloudflare_ips.txt --file-path ips.txt
--upload-count 上传IP数量 10 --upload-count 20

说明:

  • ✅ 必需参数:必须提供
  • ⚠️ 条件必需:在特定模式下需要
  • ❌ 可选参数:可以不提供,使用默认值

使用场景示例

场景1:定时自动测速并上报到API

# 每天凌晨2点自动测速并上报
python3 cloudflare_speedtest.py --mode beginner \
  --count 20 --speed 2 --delay 500 \
  --upload api \
  --worker-domain example.com --uuid abc123 \
  --upload-count 20

场景2:测试多个地区并上传到GitHub

# 测试香港地区
python3 cloudflare_speedtest.py --mode normal \
  --region HKG --count 20 --speed 5 --delay 300 \
  --upload github \
  --repo username/cloudflare-ips --token ghp_xxx \
  --file-path hkg_ips.txt

# 测试新加坡地区
python3 cloudflare_speedtest.py --mode normal \
  --region SIN --count 20 --speed 5 --delay 300 \
  --upload github \
  --repo username/cloudflare-ips --token ghp_xxx \
  --file-path sin_ips.txt

场景3:快速测试IPv6

# 快速测试IPv6地址
python3 cloudflare_speedtest.py --mode beginner \
  --ipv6 --count 10 --speed 1 --delay 1000

场景4:高质量测试(适合对速度要求高的场景)

# 测试50个IP,速度要求5MB/s以上,延迟200ms以内
python3 cloudflare_speedtest.py --mode beginner \
  --count 50 --speed 5 --delay 200

场景5:批量生成反代列表

# 从多个CSV文件生成反代列表
python3 cloudflare_speedtest.py --mode proxy --csv result1.csv
python3 cloudflare_speedtest.py --mode proxy --csv result2.csv
python3 cloudflare_speedtest.py --mode proxy --csv result3.csv

结果上报详细说明

上报到 Cloudflare Workers API

完整示例:

python3 cloudflare_speedtest.py --mode beginner \
  --count 20 --speed 2 --delay 500 \
  --upload api \
  --worker-domain example.com \
  --uuid abc123 \
  --upload-count 20

参数说明:

  • --upload api:指定上传方式为API
  • --worker-domain:您的Worker域名(例如:example.com)
  • --uuid:UUID或路径(例如:abc123 或 351c9981-04b6-4103-aa4b-864aa9c91469)
  • --upload-count:要上传的IP数量(默认10个)

上报到 GitHub 仓库

完整示例:

python3 cloudflare_speedtest.py --mode beginner \
  --count 20 --speed 2 --delay 500 \
  --upload github \
  --repo username/repo-name \
  --token ghp_xxxxxxxxxxxxxxxxxxxx \
  --file-path cloudflare_ips.txt \
  --upload-count 20

参数说明:

  • --upload github:指定上传方式为GitHub
  • --repo:GitHub仓库路径,格式:owner/repo(例如:username/repo-name
  • --token:GitHub Personal Access Token(需要 repo 权限)
  • --file-path:上传的文件路径(默认:cloudflare_ips.txt
  • --upload-count:要上传的IP数量(默认10个)

获取GitHub Token:

  1. 访问 https://github.com/settings/tokens
  2. 点击 "Generate new token (classic)"
  3. 勾选 repo 权限
  4. 生成并复制Token

常用参数组合

快速测试组合

python3 cloudflare_speedtest.py --mode beginner --count 5 --speed 0.5 --delay 2000

标准测试组合

python3 cloudflare_speedtest.py --mode beginner --count 20 --speed 2 --delay 500

高质量测试组合

python3 cloudflare_speedtest.py --mode beginner --count 50 --speed 5 --delay 200

地区测试组合

# 香港
python3 cloudflare_speedtest.py --mode normal --region HKG --count 20 --speed 5 --delay 300

# 新加坡
python3 cloudflare_speedtest.py --mode normal --region SIN --count 20 --speed 5 --delay 300

# 东京
python3 cloudflare_speedtest.py --mode normal --region NRT --count 20 --speed 5 --delay 300

查看帮助信息

# 查看完整帮助信息
python3 cloudflare_speedtest.py --help

# 查看帮助信息(包含使用示例)
python3 cloudflare_speedtest.py -h

错误处理

常见错误及解决方法:

  1. 缺少必需参数
# 错误:缺少 --mode 参数
python3 cloudflare_speedtest.py --count 20
# 解决:添加 --mode 参数
python3 cloudflare_speedtest.py --mode beginner --count 20
  1. 常规测速模式缺少地区码
# 错误:常规测速模式需要 --region 参数
python3 cloudflare_speedtest.py --mode normal --count 20
# 解决:添加 --region 参数
python3 cloudflare_speedtest.py --mode normal --region HKG --count 20
  1. 上传模式缺少必需参数
# 错误:API上传缺少 --worker-domain 或 --uuid
python3 cloudflare_speedtest.py --mode beginner --upload api
# 解决:添加必需参数
python3 cloudflare_speedtest.py --mode beginner --upload api \
  --worker-domain example.com --uuid abc123

自动化脚本示例

Linux/Mac 定时任务(crontab)

# 编辑crontab
crontab -e

# 每天凌晨2点自动测速并上报到API
0 2 * * * cd /path/to/project && python3 cloudflare_speedtest.py --mode beginner --count 20 --speed 2 --delay 500 --upload api --worker-domain example.com --uuid abc123 >> /var/log/cloudflare_speedtest.log 2>&1

Windows 计划任务

@echo off
cd /d C:\path\to\project
python cloudflare_speedtest.py --mode beginner --count 20 --speed 2 --delay 500 --upload api --worker-domain example.com --uuid abc123

Shell脚本示例

#!/bin/bash
# 自动测速脚本

# 测试香港地区
python3 cloudflare_speedtest.py --mode normal \
  --region HKG --count 20 --speed 5 --delay 300 \
  --upload github \
  --repo username/cloudflare-ips --token ghp_xxx \
  --file-path hkg_ips.txt

# 测试新加坡地区
python3 cloudflare_speedtest.py --mode normal \
  --region SIN --count 20 --speed 5 --delay 300 \
  --upload github \
  --repo username/cloudflare-ips --token ghp_xxx \
  --file-path sin_ips.txt

交互式模式详细说明

1. 小白快速测试模式

专为新手设计,只需要输入3个简单的数字:

📊 第一步:设置测试IP数量
请输入要测试的IP数量 [默认: 10]: 20

⏱️  第二步:设置延迟上限
请输入延迟上限(ms) [默认: 1000]: 500

🚀 第三步:设置下载速度下限
请输入下载速度下限(MB/s) [默认: 1]: 2

2. 常规测速模式

机场码选择

  • 输入机场码:HKG (香港)
  • 输入城市名:香港Hong Kong
  • 查看完整列表:输入 LIST

自定义参数

自定义配置:
请输入要测试的IP数量 [默认: 10]: 20
请输入下载速度下限 (MB/s) [默认: 1]: 5
请输入延迟上限 (ms) [默认: 1000]: 500

3. 优选反代模式

优选反代模式
==================================================
此功能将从CSV文件中提取IP和端口信息,生成反代IP列表
CSV文件格式要求:
  - 包含 'IP 地址' 和 '端口' 列
  - 或包含 'ip' 和 'port' 列
  - 支持逗号分隔的CSV格式
==================================================

请输入CSV文件路径 [默认: result.csv]: 

4. 结果上报功能

Cloudflare Workers API 上报

  • 需要提供 Worker 域名和 UUID或者路径
  • 支持批量上传
  • 自动格式化IP列表(包含注释)

GitHub 仓库上传

  • 需要提供 GitHub Personal Access Token
  • 支持上传到公开仓库
  • 文件格式:IP:端口#地区名-速度MB/s
  • 使用换行符分隔,不使用逗号

输出文件

测速结果 (result.csv)

IP 地址,端口,延迟,下载速度 (MB/s),上传速度 (MB/s)
1.2.3.4,443,10.5,150.2,120.8
5.6.7.8,80,15.2,200.1,180.5

反代列表 (ips_ports.txt)

1.2.3.4:443
5.6.7.8:80
9.10.11.12:8080

GitHub上传格式 (cloudflare_ips.txt)

1.2.3.4:443#香港-5.23MB/s
5.6.7.8:443#新加坡-8.45MB/s
9.10.11.12:443#东京-6.78MB/s
  • 使用换行符分隔,每行一个IP
  • 包含注释信息(#后面的内容)
  • 格式:IP:端口#地区名-速度MB/s(井号前后无空格)

支持的机场码

亚太地区

  • HKG - 香港
  • NRT - 东京
  • SIN - 新加坡
  • SYD - 悉尼
  • ICN - 首尔
  • TPE - 台北

欧洲地区

  • LHR - 伦敦
  • FRA - 法兰克福
  • AMS - 阿姆斯特丹
  • CDG - 巴黎
  • MAD - 马德里
  • FCO - 罗马

美洲地区

  • LAX - 洛杉矶
  • SFO - 旧金山
  • DFW - 达拉斯
  • ORD - 芝加哥
  • JFK - 纽约
  • YYZ - 多伦多

完整列表包含97个全球数据中心,支持所有主要城市和地区。

高级配置

环境变量

# 设置默认机场码
export DEFAULT_AIRPORT=HKG

# 设置默认IP数量
export DEFAULT_IP_COUNT=20

# 设置默认速度阈值
export DEFAULT_SPEED_LIMIT=50

配置文件

创建 config.json 文件:

{
  "default_airport": "HKG",
  "default_ip_count": 20,
  "default_speed_limit": 50,
  "default_delay_limit": 200,
  "default_time_limit": 10
}

开发说明

项目结构

cloudflare-speedtest/
├── cloudflare_speedtest.py    # 主程序
├── requirements.txt            # 依赖文件
├── .github/
│   └── workflows/
│       └── build-all-platforms.yml  # 自动构建
├── README.md                   # 说明文档
└── LICENSE                     # 许可证

贡献指南

我们欢迎所有形式的贡献!

如何贡献

  1. Fork 本仓库
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 创建 Pull Request

报告问题

如果您发现任何问题,请:

  1. 检查 Issues 是否已存在
  2. 创建新的 Issue,详细描述问题
  3. 提供系统信息和错误日志

更新日志

v2.2.3 (最新)

  • ✨ 新增Docker支持
    • 提供官方Docker镜像,开箱即用
    • 支持Docker Compose一键部署
    • 支持多架构(amd64/arm64)
    • 数据持久化支持
    • 环境隔离,运行更稳定
  • ✨ 新增定时任务设置功能(Linux/OpenWrt)
    • 自动检测Linux和OpenWrt环境
    • 支持设置Cron定时任务
    • 智能检测现有任务,支持清理或继续添加
    • 自动使用绝对路径,确保定时任务正确执行
    • 支持交互模式和命令行模式
  • 🔧 改进命令生成功能
    • 自动使用实际应用名(支持改名的.py文件和封装后的可执行文件)
    • 使用绝对路径生成命令,确保定时任务正确执行
  • 🔧 改进GitHub上传功能
    • 添加配置保存功能,避免每次都要输入Token和仓库信息
    • 改进网络错误处理,自动使用curl备用方案
  • 🐛 修复命令行模式下GitHub上传的网络错误问题

v2.2.2

  • ✨ 新增命令行参数支持
  • ✨ 新增小白快速测试模式
  • ✨ 新增结果上报功能(Cloudflare Workers API 和 GitHub)
  • ✨ 新增IPv6支持
  • ✨ 新增GitHub仓库上传功能
  • 🐛 修复编码问题(GBK解码错误)
  • 🐛 修复NoneType strip错误
  • 🔧 改进错误处理和用户提示
  • 📝 更新文档说明
  • 🔧 优化UUID格式验证(支持任意格式)
  • 🔧 改进GitHub上传功能(支持公开仓库,包含注释)

v2.0.0

  • 重构代码结构
  • 优化用户体验
  • 改进错误处理机制

v1.0.0

  • 初始版本发布
  • 支持97个全球数据中心
  • 常规测速功能
  • 优选反代功能
  • 跨平台支持
  • 预编译可执行文件

许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

致谢


如果这个项目对您有帮助,请给我们一个星标!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • Python 96.8%
  • Shell 2.4%
  • Dockerfile 0.8%