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

推荐订阅源

Help Net Security
Help Net Security
G
Google Developers Blog
雷峰网
雷峰网
WordPress大学
WordPress大学
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Engineering at Meta
Engineering at Meta
Security Latest
Security Latest
T
Threat Research - Cisco Blogs
AWS News Blog
AWS News Blog
F
Full Disclosure
C
Cybersecurity and Infrastructure Security Agency CISA
T
The Exploit Database - CXSecurity.com
J
Java Code Geeks
U
Unit 42
C
Cyber Attacks, Cyber Crime and Cyber Security
V
V2EX
C
Cisco Blogs
博客园 - 司徒正美
Project Zero
Project Zero
L
LINUX DO - 热门话题
阮一峰的网络日志
阮一峰的网络日志
Blog — PlanetScale
Blog — PlanetScale
Scott Helme
Scott Helme
A
About on SuperTechFans
Hugging Face - Blog
Hugging Face - Blog
S
Securelist
小众软件
小众软件
aimingoo的专栏
aimingoo的专栏
S
Schneier on Security
G
GRAHAM CLULEY
酷 壳 – CoolShell
酷 壳 – CoolShell
Cyberwarzone
Cyberwarzone
MongoDB | Blog
MongoDB | Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 叶小钗
T
Threatpost
Recorded Future
Recorded Future
C
CXSECURITY Database RSS Feed - CXSecurity.com
宝玉的分享
宝玉的分享
N
News and Events Feed by Topic
人人都是产品经理
人人都是产品经理
The Register - Security
The Register - Security
S
Security Archives - TechRepublic
博客园 - Franky
N
News | PayPal Newsroom
Simon Willison's Weblog
Simon Willison's Weblog
S
SegmentFault 最新的问题
W
WeLiveSecurity
A
Arctic Wolf
B
Blog

云野开源志

OpenClaw npm 升级踩坑记:从版本冲突到模块丢失 免责声明 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证书管理难题的神器 轻量级网络端口监控工具 GeoLite2 自动搬运仓库使用手册 MaxMind 免费账号注册 Docker 搭建私有 DNS 服务器 hugo-theme-stack集成Umami openresty编译添加geoip2模块支持 GPU加速云原生应用,开启高性能计算新纪元 5. K8S Service与Ingress 4. K8S 控制器 Rancher搭建 3. K8S Pod 资源管理 2. K8S 基础资源管理 1. K8S 简介和认证介绍 Rancher集成AzureAD认证 Harbor 部署搭建 站点留言板 关于 友情链接
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 文件。