前几天帮客户调试服务器,需要从GitHub拉代码,结果SSH连接死活不通,HTTPS clone倒是能连上但是速度跟蜗牛似的,1MB的东西要跑2分钟。
换了几个镜像站,要么需要备案,要么速度也不稳定。后来想起之前给TMDB做反代的时候用过Cloudflare Workers,这玩意儿对GitHub应该也管用。
实测下来,Workers反代的延迟比直连GitHub稳定多了,而且完全免费。

原理很简单
Cloudflare的边缘节点遍布全球,我们用Workers在CF服务器上做一个”中转站”:
你的机器 → Cloudflare边缘节点 → GitHub
CF节点到GitHub的连接质量,比你家宽带直连好得多。
部署步骤
1. 登录Cloudflare Dashboard
有账号的直接进,没账号的注册一个,不需要信用卡。
进入 Workers & Pages → 创建 Worker → 起个名字,比如 github-proxy
2. 粘贴代码
把默认的代码删掉,替换成这个:
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request));
});
async function handleRequest(request) {
const url = new URL(request.url);
const githubUrl = new URL(url.pathname + url.search, 'https://github.com');
const response = await fetch(githubUrl, {
headers: {
'User-Agent': request.headers.get('User-Agent') || 'Mozilla/5.0',
'Accept': request.headers.get('Accept') || 'text/html',
}
});
return new Response(response.body, {
status: response.status,
headers: response.headers
});
}
保存并部署。

3. 配置自定义域名(可选但推荐)
免费的 Workers 有个问题:每天有10万请求限制,而且域名是 *.workers.dev。
如果你有自己域名(比如 gh.yourdomain.com),可以在 Workers → 设置 → 触发器 → 自定义域,绑定你自己的域名。
这样访问 https://gh.yourdomain.com/用户名/仓库 就等于访问 GitHub。
4. 改hosts(可选,进一步优化)
有些情况下 DNS 污染会影响连接,可以在本地加一条 hosts:
# 查你CF Worker的IP
ping gh.yourdomain.com
# 编辑 hosts(macOS/Linux)
sudo vim /etc/hosts
# 添加一行
你查到的IP gh.yourdomain.com
实际效果
部署完之后测了一下:
- 直连 GitHub:SSH 超时,HTTPS clone 30KB/s
- Workers 反代:SSH 正常,HTTPS clone 2-3MB/s
不过要注意,不要用反代来push代码,push 操作可能会触发 GitHub 的安全机制。日常拉代码、clone仓库完全没问题。
进阶:SSH 走反代
如果你需要 SSH 克隆仓库,可以在 ~/.ssh/config 加上:
Host github.com
Hostname gh.yourdomain.com
ProxyCommand nc -X 5 -x 127.0.0.1:7890 %h %p
其中 127.0.0.1:7890 是你的本地代理端口,根据实际情况改。
嫌麻烦的话,直接用 HTTPS + token 的方式克隆更省事:
git clone https://gh.yourdomain.com/用户名/仓库.git

总结
Cloudflare Workers 反代 GitHub 是个零成本、零配置的解决方案,适合:
- 开发环境需要频繁拉 GitHub 代码
- 临时调试海外开源项目
- 网络不稳定的场景
唯一要注意的就是别拿来 push 代码,老老实实用 HTTPS 或者 GitHub 官方 SSH。
如果你有更好的方案,欢迎交流。