前言
每次 git clone卡住、raw.githubusercontent.com下不来、Release 附件下载到一半断掉……你是不是也遇到过?
我以前试过改 hosts、换镜像站、甚至半夜爬起来拉代码,都没根治。
后来发现一个巨简单的法子:用 Cloudflare Worker 给自己搭一个 GitHub 反代,全程不到 1 分钟,而且完全免费。
原理其实不复杂,但今天不展开讲,直接上操作。
正式开始
1️⃣ 复制 Worker 代码
去这个仓库,把 worker.js的内容复制下来:
🔗 GithubSiteProxyForCloudflareWorker
代码很短,就是一个反向代理脚本:你请求什么路径,它就帮你从 GitHub 取回来。
2️⃣ 部署到 Cloudflare Worker
- 登录 Cloudflare
- 左侧菜单 → Workers & Pages → 创建应用程序 → 创建 Worker
- 给你的 Worker 起个名字,比如
github-proxy - 把刚才复制的代码粘贴进去,覆盖默认模板
- 点击 部署
部署完成后,你会得到一个 .workers.dev的测试地址,先放着,下一步绑你自己的域名。
3️⃣ 创建 DNS 解析
为了让你的子域名(比如 gh.kajiuli.zh.kg)指向这个 Worker,需要在 Cloudflare 的 DNS 里加一条记录
你的 Worker 地址(xxxx.子账户.workers.dev)
⚠️不要开橙云(Worker就是橙云)
可以你用泛域名,也但我建议新手先用固定子域名,少踩坑。
4️⃣ 创建 Worker 路由
光有 DNS 还不够,还要告诉 Cloudflare:哪些请求交给这个 Worker 处理。
进入你的 Worker 详情页 → 触发器 → 路由 → 添加路由,填入:
gh.kajiuli.zh.kg/*
保存即可。这一步的意思是:所有访问 gh.kajiuli.zh.kg的请求,都由你的 Worker 接管。
5️⃣ 创建重定向(可选但推荐)
当你直接访问 gh.kajiuli.zh.kg(不带路径)时,最好自动跳转到某个地方,比如你的 GitHub 首页。
在 Cloudflare 的 规则 → 重定向规则 里加一条:
- 匹配:
gh.kajiuli.zh.kg - 动作:302 重定向 →
https://github.com/你的用户名
这样别人点进来也不会看到空白页。
6️⃣ 屏蔽海外访问
海外用户本来就能直连 GitHub,不需要你的代理。而且如果不限制,免费额度可能很快被刷光。
在 Worker 代码里,通常有一段根据 cf-ipcountry判断地区的逻辑,把非中国大陆的请求直接返回 403 或重定向到 GitHub 官网。把那段代码取消注释即可。
7️⃣ 开始用吧
等 DNS 生效(一般几分钟),直接在浏览器访问:
https://gh.kajiuli.zh.kg/你的GitHub用户名
如果能正常显示你的 GitHub 个人页,说明成功了。
实际用法示例:
# 原来卡死的 clone
git clone https://github.com/torvalds/linux.git
# 现在用你的代理
git clone https://gh.kajiuli.zh.kg/torvalds/linux.git
# 原来下不来的 raw 文件
wget https://raw.githubusercontent.com/user/repo/main/config.yml
# 现在
wget https://gh.kajiuli.zh.kg/user/repo/raw/main/config.yml
Release 附件也一样,把 github.com换成 gh.kajiuli.zh.kg就行。
一点提醒
- 这个代理只适合你自己用,别到处发链接,否则容易被打满额度
- Cloudflare Worker 免费版每天有 10 万次请求限制,个人开发完全够用
- 如果发现偶尔超时,那是 CF 回源 GitHub 的正常抖动,等一会再试就好
隐私与协议设置
- 本代理不会存储任何用户数据,仅做请求透传
- 建议关闭 Worker 日志或在后台定期清理
- 请勿用于非法用途,仅供开发者提高工作效率
