GitHub 和 Hugging Face 的本地加速方案
前提:系统的代理已经是配置好的代理,已经有了加速的能力。代理模式是 直连模式 ——仅开启 HTTP 代理,不自动配置系统代理,需要把模式打开到直连模式。
第一部分:Windows 下 Git 开启/查看/关闭代理
下面把 Windows 下 Git 开启代理、查看代理、关闭代理的命令集中整理,适用于你使用的系统代理软件。
1. 开启 GitHub 代理
假设你的代理软件 HTTP 代理端口是 10809,在 PowerShell 或 CMD 中执行:
1 | git config --global http.https://github.com.proxy http://127.0.0.1:10809 |
这会让 Git 对上述 GitHub 域名的 HTTPS 请求使用代理,而不是让所有 Git 仓库都走代理。
2. 查看当前代理配置
1 | git config --global --get-regexp "http\..*\.proxy" |
3. 关闭 GitHub 代理
1 | git config --global --unset http.https://github.com.proxy |
这会删除上面设置的 GitHub 专用代理配置,不会关闭代理软件,也不会修改 Windows 系统代理。
4. 让所有 Git 仓库都走代理
开启:
1 | git config --global http.proxy http://127.0.0.1:10809 |
关闭:
1 | git config --global --unset http.proxy |
注意:如果之前已经设置过全局 http.proxy,它可能会影响其他仓库。关闭时也要考虑已有配置,不要误删自己仍然需要的设置。
5. 测试代理是否生效
1 | git ls-remote https://github.com/git/git.git HEAD |
如果输出提交哈希和 HEAD,说明 Git 成功获取了 GitHub 仓库信息。
提醒: 10809 只是示例端口。请确认你的代理软件的这个端口确实在监听,并且代理核心正在运行。Git 配置本身不会启动代理软件。
第二部分:Hugging Face 下载加速(Ubuntu)
先区分方法类型:换源(镜像)、走代理、断点续传。不要把几种不同的镜像地址混在一起配置,否则可能下载失败、缓存冲突或校验问题。
环境准备:确认已装 huggingface_hub(优先用官方 hf download 工具):
1 | python3 -m pip install -U huggingface_hub |
1. 换源:使用镜像站(最常用)
设置镜像端点,下载模型即走镜像:
1 | export HF_ENDPOINT="https://hf-mirror.net" |
永久生效(写进 ~/.bashrc,新终端也有效):
1 | echo 'export HF_ENDPOINT="https://hf-mirror.net"' >> ~/.bashrc |
下载示例:
1 | hf download gpt2 |
镜像不稳定就换成别的可用端点(如
https://hf-mirror.com),先临时测试,确认可用再永久写入。镜像只影响支持HF_ENDPOINT的 Hub 客户端;项目自己拼下载 URL 或用 requests/wget/curl 时不生效。
2. 走已有的代理软件
本地 HTTP 代理端口假设为 7890,按实际端口修改:
1 | export http_proxy="http://127.0.0.1:7890" |
若是 SOCKS5 端口(如 7891):
1 | export ALL_PROXY="socks5h://127.0.0.1:7891" |
取消代理环境变量:
1 | unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY ALL_PROXY |
走代理时通常不必再设镜像,建议先测官方源,不行再换镜像。
3. 启用 Xet 高性能下载
新版 huggingface_hub 用 hf-xet 处理支持 Xet 存储的文件传输:
1 | python3 -m pip install -U "huggingface_hub[hf_xet]" |
下载:
1 | hf download Qwen/Qwen2.5-7B-Instruct |
不保证所有模型都变快,取决于服务器、磁盘和网络带宽。旧方案变量
HF_HUB_ENABLE_HF_TRANSFER=1已弃用,优先用上面的 Xet 变量。不需要时unset HF_XET_HIGH_PERFORMANCE。
4. 只下载需要的文件
不需要整个仓库时就按文件拉取:
1 | # 只下某个文件 |
5. 断点续传 + 缓存复用
hf download 自带缓存机制:已完整缓存的不会重复下载,中断后重跑同一条命令会尝试继续。想换更大磁盘放缓存,下载前先指定:
1 | export HF_HOME="/data/huggingface" |
查看缓存与磁盘空间:
1 | du -sh ~/.cache/huggingface/hub 2>/dev/null |
6. 离线加载已下载的模型
下载完整后,关闭联网检查直接用本地文件:
1 | export HF_HUB_OFFLINE=1 |
代码里用本地路径 + local_files_only=True:
1 | from transformers import AutoModel |
取消离线:unset HF_HUB_OFFLINE。离线只能用已存在的文件,缺配置/权重/分词器仍会报错。
7. 推荐组合顺序
- 先解决连通:测代理能否直连官方源;不方便再换镜像。
- 提高效率:升级
huggingface_hub+ 开 Xet + 把超时调高(export HF_HUB_DOWNLOAD_TIMEOUT=60 HF_HUB_ETAG_TIMEOUT=30)。 - 避免重复下载:统一缓存目录,用
hf download,下载完改为本地路径加载。
关键区别:
HF_ENDPOINT只对使用 Hub 客户端的代码生效;项目写死 URL 或用独立 requests/wget/curl 下载时,需单独配代理或改地址。
官方文档:

