Skip to content

Dirige/cf-test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cloudflare Speed Test Server

一个基于 Go 的 Cloudflare 优选域名测速系统,可以自动测试优选域名的速度并更新 DNS 记录。

✨ 功能特性

  • 🚀 域名测速 - 自动测试多个优选域名的延迟和下载速度
  • 🔄 自动 DNS - 测速完成后自动更新 Cloudflare DNS 记录
  • 定时任务 - 支持 cron 表达式定时执行测速
  • 🐳 Docker 支持 - 提供 Docker 和 docker-compose 部署方案

📁 项目结构

cf-test/
├── cfst-server/              # Go 本地服务器
│   ├── internal/             # 内部包
│   │   ├── api/             # HTTP API 处理
│   │   ├── config/          # 配置管理
│   │   ├── crypto/          # 加密解密
│   │   ├── dns/             # DNS 操作
│   │   ├── geoip/           # IP 地理位置
│   │   ├── reporter/        # 结果上报
│   │   ├── scheduler/       # 定时任务
│   │   └── speedtest/       # 测速核心
│   ├── web/                 # Web 前端
│   ├── main.go              # 入口文件
│   ├── config.yaml.example  # 配置示例
│   ├── Dockerfile           # Docker 构建文件
│   └── docker-compose.yml   # Docker Compose
└── .github/workflows/       # GitHub Actions
    ├── build.yml            # 构建二进制并发布 Release
    └── docker.yml           # 构建并推送 Docker 镜像

🚀 快速开始

方式一:下载预编译二进制

前往 Releases 页面下载对应平台的二进制文件。

# 下载后赋予执行权限 (Linux/macOS)
chmod +x cfst-server

# 复制配置文件
cp config.yaml.example config.yaml
# 编辑 config.yaml 填入你的配置

# 运行
./cfst-server -c config.yaml

方式二:Docker 部署

1. 配置文件

cd cfst-server
cp config.yaml.example config.yaml
# 编辑 config.yaml 填入你的配置

2. 启动服务

docker-compose up -d

或直接使用 Docker 命令:

docker pull ghcr.io/dirige/cf-test:latest
docker run -d -p 8080:8080 -v ./config.yaml:/app/config.yaml ghcr.io/dirige/cf-test:latest

方式三:本地编译运行

1. 克隆项目

git clone https://github.com/Dirige/cf-test.git
cd cf-test

2. 配置 cfst-server

cd cfst-server
cp config.yaml.example config.yaml

编辑 config.yaml,填入你的配置:

server:
  port: 8080
  host: "0.0.0.0"

dns:
  zone_id: "你的 Cloudflare Zone ID"
  record_name: "你的域名.com"
  record_type: "CNAME"
  api_token: "你的 Cloudflare API Token"

speedtest:
  timeout: 30
  auto_update_dns: true
  schedule: ""  # cron 表达式,如 "0 */6 * * *" 每6小时执行
  cfst_path: "./cfst"
  dns_server: "223.5.5.5"

domains:
  - name: "CF优选-090227"
    domain: "youxuan.cf.090227.xyz"
  - name: "MIYU优选"
    domain: "saas.sin.fan"
  - name: "Mingyu优选"
    domain: "bestcf.030101.xyz"
  - name: "NB优选"
    domain: "cf.cf.cnae.top"
  - name: "NexusMods"
    domain: "staticdelivery.nexusmods.com"
  - name: "Visa官方"
    domain: "www.visa.cn"
  - name: "WeTest优选"
    domain: "cf.cloudflare.182682.xyz"
  - name: "乌克兰外交部"
    domain: "mfa.gov.ua"
  - name: "无名氏维护域名"
    domain: "cf.tencentapp.cn"
  - name: "秋名山优选"
    domain: "cf.877774.xyz"
  - name: "育碧商店"
    domain: "store.ubi.com"

3. 编译运行

# Windows
go build -o cfst-server.exe .

# Linux/macOS
go build -o cfst-server .

# 运行
./cfst-server -c config.yaml

访问 http://localhost:8080 即可使用 Web 界面。

⚙️ 配置说明

Cloudflare API Token

  1. 登录 Cloudflare Dashboard
  2. 进入 My ProfileAPI Tokens
  3. 创建 Token,权限选择:
    • Zone - DNS - Edit(用于更新 DNS 记录)
    • Zone - Zone - Read(用于读取 Zone 信息)

Zone ID

  1. 登录 Cloudflare Dashboard
  2. 选择你的域名
  3. 在右侧 API 部分可以看到 Zone ID

测速域名

config.yamldomains 部分添加你要测速的域名:

domains:
  - name: "显示名称"
    domain: "your-domain.com"

📖 API 接口

测速相关

接口 方法 说明
/api/speedtest/ip POST IP 段测速
/api/speedtest/domain POST 域名测速
/api/speedtest/single POST 单域名测速

域名管理

接口 方法 说明
/api/domains GET 获取域名列表
/api/domains POST 添加域名
/api/domains/:name DELETE 删除域名

DNS 管理

接口 方法 说明
/api/dns GET 获取 DNS 记录
/api/dns/record POST 添加 DNS 记录
/api/dns/replace POST 替换 DNS 记录
/api/dns/batch POST 批量更新 DNS

其他

接口 方法 说明
/api/results/best GET 获取最佳结果
/api/geoip GET IP 地理位置查询
/api/status GET 服务状态

🔧 开发指南

本地开发

# 克隆项目
git clone https://github.com/Dirige/cf-test.git
cd cf-test

# 安装 Go 依赖
cd cfst-server
go mod download

# 编译运行
go run main.go -c config.yaml.example

编译不同平台

# Windows 64位
GOOS=windows GOARCH=amd64 go build -o cfst-server.exe .

# Linux 64位
GOOS=linux GOARCH=amd64 go build -o cfst-server .

# Linux ARM64
GOOS=linux GOARCH=arm64 go build -o cfst-server .

🐳 Docker 镜像

预构建镜像支持 linux/amd64linux/arm64 两种架构:

# GHCR
docker pull ghcr.io/dirige/cf-test:latest

# Docker Hub
docker pull dirige/cf-test:latest

📝 许可证

本项目基于 MIT 许可证开源 - 详见 LICENSE 文件

🙏 致谢

📞 联系方式

如有问题或建议,请通过以下方式联系:

About

测试本地到优选域名之间的速度

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors