一个基于 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.yamlcd cfst-server
cp config.yaml.example config.yaml
# 编辑 config.yaml 填入你的配置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:latestgit clone https://github.com/Dirige/cf-test.git
cd cf-testcd 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"# Windows
go build -o cfst-server.exe .
# Linux/macOS
go build -o cfst-server .
# 运行
./cfst-server -c config.yaml访问 http://localhost:8080 即可使用 Web 界面。
- 登录 Cloudflare Dashboard
- 进入 My Profile → API Tokens
- 创建 Token,权限选择:
- Zone - DNS - Edit(用于更新 DNS 记录)
- Zone - Zone - Read(用于读取 Zone 信息)
- 登录 Cloudflare Dashboard
- 选择你的域名
- 在右侧 API 部分可以看到 Zone ID
在 config.yaml 的 domains 部分添加你要测速的域名:
domains:
- name: "显示名称"
domain: "your-domain.com"| 接口 | 方法 | 说明 |
|---|---|---|
/api/speedtest/ip |
POST | IP 段测速 |
/api/speedtest/domain |
POST | 域名测速 |
/api/speedtest/single |
POST | 单域名测速 |
| 接口 | 方法 | 说明 |
|---|---|---|
/api/domains |
GET | 获取域名列表 |
/api/domains |
POST | 添加域名 |
/api/domains/:name |
DELETE | 删除域名 |
| 接口 | 方法 | 说明 |
|---|---|---|
/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 .预构建镜像支持 linux/amd64 和 linux/arm64 两种架构:
# GHCR
docker pull ghcr.io/dirige/cf-test:latest
# Docker Hub
docker pull dirige/cf-test:latest本项目基于 MIT 许可证开源 - 详见 LICENSE 文件
- CloudflareSpeedTest - 测速核心逻辑
如有问题或建议,请通过以下方式联系: