2025 年下半年,一个叫 xget 的开源项目在中国开发者社区悄悄走红。它的作者 xixu-me 在 GitHub 上发布 xget 时,定位非常具体:解决中国开发者下载 GitHub 仓库、npm 包、Docker 镜像、PyPI 包时被卡脖子的问题。它做的事情并不复杂——在 Cloudflare Workers 上跑一个 URL 重写代理,把开发者常用的下载链接替换成经过 CF 全球边缘节点的加速通道。但这个“简单”背后,是一次对下载加速本质的重新思考。

为什么 GitHub 下载总是慢

如果你在中国大陆下载过 GitHub release 里的二进制文件,大概率体验过几十 KB/s 的“蜗牛速度”。这不是 GitHub 服务器慢,而是国际带宽出口的拥堵加上 CDN 节点的不合理分配。GitHub 的资产托管在 GitHub 自家的 CDN 上,但 CF Workers 的边缘节点在中国大陆有相对较好的连接质量——这正是 xget 利用的窗口。

xget 的工作原理可以一句话概括:在 Cloudflare 的边缘节点上,代替用户去访问 GitHub 等源站,把数据中继回来。从中国用户角度看,他访问的是 Cloudflare 在亚洲的边缘节点(比如东京、首尔、香港),而不是直连 GitHub 在美国的服务器。

xget 不是下载工具,它是一个“边缘中继下载服务”。这种新形态让“加速”这件事从客户端软件领域,转移到了网络基础设施领域。

Cloudflare Workers 的天然适配

xget 选择 Cloudflare Workers 作为部署平台非常精明。Workers 是 Cloudflare 的边缘计算服务,代码运行在全球 330+ 个城市的边缘节点上,每个请求会被自动调度到最近的节点。Workers 免费版每天有 10 万次请求的额度,对个人开发者完全够用。

更精妙的是,xget 的核心代码非常短——主要是一个 URL 转换器,把 https://github.com/foo/bar/archive/refs/heads/main.tar.gz 这种原始 URL 转换成 https://xget.xi-xu.me/gh/foo/bar/archive/refs/heads/main.tar.gz。这种“路径前缀替换”几乎没有任何复杂逻辑,但因为运行在 Cloudflare 边缘上,效果立竿见影。

支持哪些开发者平台

xget 目前支持的加速平台覆盖了开发者日常 90% 的下载场景:GitHub(仓库压缩包、Release 文件、LFS 资源)、GitLab、npm(包安装)、PyPI(Python 包)、Docker Hub(镜像拉取)、Homebrew(macOS 包)、conda-forge、Apache Maven、Go Modules、crates.io 等。每个平台的加速都对应一个路径前缀规则,比如 /gh/ 对应 GitHub,/npm/ 对应 npm。

这种“多平台统一前缀”的协议设计非常优雅。开发者只需要记住“在原 URL 前加 https://xget.xi-xu.me/加平台前缀”这一个规则,就能解决所有平台的加速问题。xget 还提供了一个 URL 转换器网页(xuc.xi-xu.me),粘贴原 URL 自动生成加速链接,使用门槛几乎为零。

和传统 CDN 加速的本质区别

和传统 CDN 加速比,xget 的差异在于它是“反向代理”,不是“内容分发”。传统 CDN 把内容预先缓存到边缘节点,用户从最近节点下载;xget 不缓存任何东西(至少默认不缓存),它只是充当一个“中转站”,把用户请求转发到源站,把响应中继回来。

这种“不缓存”的好处是永远拿到源站的最新内容,坏处是每次请求都增加了一跳延迟。但 Cloudflare 边缘节点到 GitHub 源站的连接质量通常比中国家庭宽带到 GitHub 好得多,所以整体仍然显著加速。

xget 的开源策略和生态扩展

xget 完全开源,采用 MIT 协议,代码在 GitHub 和 Gitee 同步托管。任何人都可以 fork 部署自己的私有实例——这绕开了“公共服务稳定性”和“潜在滥用”的风险。作者还发布了浏览器扩展“Xget Now”,可以在用户点击 GitHub 下载链接时自动重定向到 xget 加速地址,体验接近无感。

更聪明的设计是,xget 完全兼容 wget 和 curl 的调用方式。用户可以直接在 CI 脚本、Dockerfile、Shell 脚本里把 xget 当成 wget 的替代品使用,不需要修改原有的下载逻辑。这种“无缝替换”让 xget 在 DevOps 圈子里迅速流行起来。

xget 没有解决的事

xget 也有它的局限性。它依赖 Cloudflare Workers 免费额度,大流量使用会被 CF 限制。它不解决中国大陆到 Cloudflare 边缘节点本身的连接问题——如果 CF 在中国大陆的接入点也不通畅,xget 也救不了你。它对 BT、磁力链接等 P2P 协议没有加速效果,因为 P2P 不需要走服务器中转。

另外,xget 这类服务有潜在的法律灰区——它让用户更容易访问到 GitHub 等平台的内容,而某些网络环境对此有合规要求。用户需要自己评估使用场景的合规性。

对未来下载工具形态的启示

xget 给整个下载工具领域最重要的启示是:“加速”不一定需要客户端软件,边缘网络本身就可以承担。未来的下载加速可能不再依赖 IDM、迅雷这类本地工具,而是依赖各种 Cloudflare Workers、边缘计算节点、智能 DNS 解析的组合,把“加速能力”完全外包给网络层。

下一篇我们要讲的 yt-dlp 走了完全不同的方向——它专注于“读懂视频网站”这一件事,把下载工具从“按 URL 下载”推向了“按需求下载”的新形态。

参考资料