惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Martin Fowler
Martin Fowler
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
IT之家
IT之家
云风的 BLOG
云风的 BLOG
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google DeepMind News
Google DeepMind News
Microsoft Azure Blog
Microsoft Azure Blog
Engineering at Meta
Engineering at Meta
P
Proofpoint News Feed
博客园_首页
J
Java Code Geeks
C
Check Point Blog
I
InfoQ
Apple Machine Learning Research
Apple Machine Learning Research
大猫的无限游戏
大猫的无限游戏
D
Docker
U
Unit 42
T
The Blog of Author Tim Ferriss
F
Fortinet All Blogs
GbyAI
GbyAI
N
Netflix TechBlog - Medium
T
Tailwind CSS Blog

云野开源志

OpenClaw 升级排坑实录:2026.7.1-2 → 2026.8.1 国内镜像源速配工具,Linux 换源不用愁 Tailscale 非对称路由导致 LAN 设备无法访问同网段 Tailscale 节点 Tailscale 子网路由劫持本地流量排查与修复 Tailscale vs ZeroTier:内网组网选型与实战 排查 Docker Compose PWD 变量导致 Waline 数据库挂载异常 OpenClaw npm 升级踩坑记:从版本冲突到模块丢失 Posts 免责声明 Site-Disclaimers openclaw(moltbot、Clawdbot)常见异常 大模型配置-千问免费版 初始化OpenClaw 安装openclaw记录 大年初一桃花谷 CheckSSL.sh - SSL证书到期时间监控脚本 g.sh - Go语言环境管理工具安装脚本 install-cri-docker.sh - cri-dockerd安装脚本 install-docker.sh - Docker Engine快速安装脚本 install-docker2.sh - Docker 交互式安装脚本 install-nginx.sh - Nginx官方源快速安装脚本 install-zerotier.sh - ZeroTier 虚拟网络快速安装脚本 mng.sh - Nginx配置文件合并脚本 OpenSSL.sh - 自签名 SSL 证书生成脚本 SystemInfoMonitor.sh - 系统资源监控告警脚本 UpdateImages.sh - Docker 镜像批量更新脚本 解忧杂货铺 - 云野开源志 为Hugo Next主题添加Umami统计支持 解忧杂货铺 - 栏目声明 Certd - 解决多平台SSL证书管理难题的神器
CloudFlare Accel
云野开源志 · 2025-10-10 · via 云野开源志

总结摘要

本文介绍了如何使用 Cloudflare Workers 或 Cloudflare Pages 部署开源项目 Cloudflare-Accel,实现对 GitHub 文件下载和 Docker/K8s 镜像拉取的全球加速。通过配置反向代理和可选的域名/路径白名单,用户可获得隐私安全、高性能的镜像加速服务,并通过友好的网页界面自动生成并一键复制加速链接或 docker pull 命令,适用于开发者日常运维与 CI/CD 场景。

基于 Cloudflare Workers 的 GitHub 和 Docker 加速服务,自动生成加速链接与命令。

转载自:https://github.com/fscarmen2/Cloudflare-Accel/tree/main

Cloudflare-Accel

是一个基于 Cloudflare Workers 或 Cloudflare Pages 的反向代理服务,旨在加速 GitHub 文件下载和 Docker 镜像拉取。通过 Cloudflare 的全球边缘网络,提供更快、更稳定的下载体验。项目提供直观的网页界面,支持将 GitHub 文件链接和 Docker 镜像地址转换为加速链接或命令,并自动复制到剪贴板。界面针对 PC 和移动端(iPhone、Android)进行了优化,加速链接支持换行,复制功能兼容主流浏览器,GitHub 请求通过反向代理实现加速。

目录

特点

  • ⚡ GitHub 文件加速(反向代理),支持 https://http:// 链接输入,输出加速链接保留原始协议
  • 🐳 Docker 镜像加速(反向代理)
  • 🎨 现代化 UI,适配 PC 和移动端(iPhone、Android),加速链接支持换行
  • 📋 复制功能兼容 PC、iPhone 和 Android 浏览器
  • 🔒 白名单控制,GitHub 链接需以 https:// 开头

部署方法

效果演示

image-20251010133737754

使用 Cloudflare Workers 部署

  1. 创建 Cloudflare Worker

    • 登录 Cloudflare 仪表板
    • 转到 Workers 部分,点击“创建 Worker”。
    • _worker.js 代码(见项目仓库)粘贴到 Worker 编辑器。
    • 点击“部署”按钮,Worker 将上线。
  2. 绑定域名

    • 在 Workers 路由中添加路由(如 *.your-domain/*),绑定到 Worker。
    • 确保 DNS 已配置(如 accel.your-domain.com 解析到 Cloudflare)。
  3. 配置白名单(可选)

    • 修改 _worker.js 中的 ALLOWED_HOSTSALLOWED_PATHS 数组,添加允许的域名和路径(如 cloudflare)。
    • 设置 RESTRICT_PATHS = true 启用路径限制,仅允许 ALLOWED_PATHS 中的路径。

使用 Cloudflare Pages 部署

  1. 创建 Cloudflare Pages 项目

    • 登录 Cloudflare 仪表板
    • 转到 Pages 部分,点击“创建项目”。
    • 选择“连接到 Git 仓库”或“直接上传”。
      • Git 仓库:连接 GitHub 仓库(如 fscarmen2/Cloudflare-Accel),选择包含 _worker.js 的分支。
      • 直接上传:上传包含 _worker.js 的文件夹(至少包含 _worker.js 文件)。
  2. 配置构建设置

    • 项目名称:输入自定义名称(如 cloudflare-accel)。
    • 构建命令:留空(无需构建,_worker.js 为单一文件)。
    • 输出目录:留空或设为 /(Cloudflare Pages 自动识别 _worker.js)。
    • 环境变量:无需额外配置(除非有特殊需求)。
    • 点击“保存并部署”。
  3. 绑定自定义域名

    • 在 Pages 项目设置中,点击“自定义域”。
    • 添加域名(如 accel.your-domain.com),确保 DNS 已解析到 Cloudflare。
    • 保存并等待 DNS 生效。
  4. 验证部署

    • 访问 https://your-pages-domain/(或自定义域名),确认显示加速页面。
    • 确保 _worker.js 使用模块语法(export default),以兼容 Cloudflare Pages 的 Functions 功能。
  5. 配置白名单(可选)

    • 编辑 _worker.js 中的 ALLOWED_HOSTSALLOWED_PATHS 数组,添加允许的域名和路径(如 cloudflare)。
    • 设置 RESTRICT_PATHS = true 启用路径限制。
    • 提交更改(Git 仓库)或重新上传文件(直接上传)。

参数说明

参数名说明默认值
ALLOWED_HOSTS允许代理的域名列表(默认白名单),未列出的域名将返回 400 错误['quay.io', 'gcr.io', 'k8s.gcr.io', 'registry.k8s.io', 'ghcr.io', 'docker.cloudsmith.io', 'registry-1.docker.io', 'github.com', 'api.github.com', 'raw.githubusercontent.com', 'gist.github.com', 'gist.githubusercontent.com']
RESTRICT_PATHS是否限制 GitHub 和 Docker 请求的路径,true 要求路径匹配 ALLOWED_PATHSfalse 允许所有路径false
ALLOWED_PATHS允许的 GitHub 和 Docker 路径关键字,仅当 RESTRICT_PATHS = true 时生效['library', 'user-id-1', 'user-id-2'](建议添加 cloudflare

修改白名单

  • 添加新域名:编辑 ALLOWED_HOSTS,如添加 docker.io
    1
    
    const ALLOWED_HOSTS = [...ALLOWED_HOSTS, 'docker.io'];
  • 添加新路径:编辑 ALLOWED_PATHS,如添加 cloudflare
    1
    
    const ALLOWED_PATHS = [...ALLOWED_PATHS, 'cloudflare'];
  • 启用路径限制:设置 RESTRICT_PATHS = true,确保 ALLOWED_PATHS 包含所需路径(如 cloudflare)。

使用示例

  1. 访问首页

    1
    
    curl https://your-domain/
    • 显示网页,包含 GitHub 和 Docker 输入框,右上角主题切换按钮,黄色闪电 favicon。移动端显示优化,加速链接支持换行,复制按钮适配 iPhone 和 Android 浏览器。
  2. GitHub 文件加速

    • 输入要求:GitHub 链接必须以 https:// 开头,否则提示“链接必须以 https:// 开头”。
    • 示例 1
      • 输入:https://github.com/cloudflare/cloudflared/releases/download/2025.7.0/cloudflared-linux-amd64
      • 输出:https://your-domain/https://github.com/cloudflare/cloudflared/releases/download/2025.7.0/cloudflared-linux-amd64
    • 示例 2
      • 输入:http://github.com/cloudflare/cloudflared/releases/download/2025.7.0/cloudflared-linux-amd64
      • 输出:https://your-domain/http://github.com/cloudflare/cloudflared/releases/download/2025.7.0/cloudflared-linux-amd64
    • 无效输入
      • 输入:github.com/cloudflare/...http://github.com/...
      • 输出:错误提示“链接必须以 https:// 开头”
    • 行为
      • 自动复制加速链接(支持 PC、iPhone、Android),弹窗提示“已复制到剪贴板”。
      • 显示 📋 复制 和 🔗 打开 按钮,移动端链接换行显示,避免溢出。
    • 测试(反向代理)
      1
      2
      3
      
      curl -I https://your-domain/https://github.com/cloudflare/cloudflared/releases/download/2025.7.0/cloudflared-linux-amd64
      curl -I https://your-domain/http://github.com/cloudflare/cloudflared/releases/download/2025.7.0/cloudflared-linux-amd64
      curl -I https://your-domain/github.com/cloudflare/cloudflared/releases/download/2025.7.0/cloudflared-linux-amd64
      • 返回:200 OK,响应内容直接从 Worker 获取(而非 302 重定向)。
      • 日志:Request: GET /github.com/cloudflare/...(忽略 https://http:// 前缀)。
    • 测试(RESTRICT_PATHS = true
      • 修改 ALLOWED_PATHS 包含 cloudflare
        1
        2
        
        const ALLOWED_PATHS = ['library', 'user-id-1', 'user-id-2', 'cloudflare'];
        const RESTRICT_PATHS = true;
      • 测试:
        1
        2
        
        curl https://your-domain/https://github.com/cloudflare/cloudflared/...  # 成功
        curl https://your-domain/https://github.com/other-user/repo/...  # 返回 403: Error: The path is not in the allowed paths.
    • 测试(RESTRICT_PATHS = false
      1
      
      curl https://your-domain/https://github.com/other-user/repo/...  # 成功
  3. Docker 镜像加速

    • 输入:nginxghcr.io/user-id-1/hubproxy
    • 输出:docker pull your-domain/nginx
    • 自动复制(支持 PC、iPhone、Android),弹窗提示“已复制到剪贴板”,显示 📋 复制 按钮。移动端命令换行显示,避免溢出。
    • 测试(RESTRICT_PATHS = true):
      1
      2
      3
      
      docker pull your-domain/nginx  # 成功(library)
      docker pull your-domain/ghcr.io/user-id-1/hubproxy  # 成功
      docker pull your-domain/ghcr.io/unknown/hubproxy  # 返回 403: Error: The path is not in the allowed paths.
    • 测试(RESTRICT_PATHS = false):
      1
      
      docker pull your-domain/ghcr.io/unknown/hubproxy  # 成功
  4. 白名单外域名

    1
    
    curl https://your-domain/invalid.com/path
    • 返回:Error: Invalid target domain.

许可证

本项目基于 MIT 许可证。详情见 LICENSE 文件。