Ollama 拉取模型卡住怎么办:pulling manifest 超时、下载中断与代理设置全解
Ollama 让在自己电脑上跑大模型变得只需要一条命令:装好以后输入 ollama run qwen2.5:7b,它会自动去官方仓库下载模型、加载、进入对话。很多人第一次用就卡在这一步:终端停在「pulling manifest」很久,最后报出「Error: pull model manifest: Get https://registry.ollama.ai/v2/library/qwen2.5/manifests/7b: dial tcp: i/o timeout」;或者清单拉下来了,几个 GB 的模型文件下载到一半速度掉到零,再报「max retries exceeded」退出。
这些问题的根源有两个。第一,模型文件实际托管在海外的仓库与对象存储上,国内直连时快时慢,大文件尤其容易中断。第二,也是最容易被忽略的:真正执行下载的不是你敲命令的那个终端,而是后台常驻的 ollama serve 服务进程。你在终端里设了代理变量,服务进程根本看不到,于是照样直连。下面先讲清这套机制,再分系统给出设置步骤与排错表。
不同系统上的 Ollama 有什么区别
表里最关键的是「设代理的位置」这一行。三个系统的共同点是:代理变量必须让服务进程读到,并且改完要重启服务。只在 PowerShell 或 zsh 里临时 export 一下,对 ollama pull 没有任何作用,因为命令行只是把请求转交给本地 11434 端口上的服务,下载由服务完成。
| 对比项 | Windows | macOS | Linux |
|---|---|---|---|
| 服务进程 | 托盘里的 Ollama 应用 | 菜单栏里的 Ollama 应用 | systemd 的 ollama.service |
| 默认模型目录 | %USERPROFILE%\.ollama\models | ~/.ollama/models | /usr/share/ollama/.ollama/models |
| 设代理的位置 | 系统环境变量 | launchctl setenv | systemctl edit ollama.service |
| 改完如何生效 | 托盘里退出后重开 | 退出应用后重开 | daemon-reload 后重启服务 |
| 默认监听端口 | 11434 | 11434 | 11434 |
| 常见坑 | 只在当前终端设了变量 | 改 shell 配置文件无效 | 改了变量没重启服务 |
把拉取跑通:分步操作步骤
- 第一步:先把网络线路准备好,连上刺猬VPN 后再拉取。安装客户端后自定义用户名和密码即可匿名注册,不需要邮箱、也不需要手机号,免费节点永久免费、不限流量,适合先测试能否连上模型仓库;全程 HTTPS+AES 加密传输;
- 第二步:确认连通性。在终端执行 curl -I https://registry.ollama.ai/v2/ ,能返回 HTTP 状态码说明仓库可达;一直没有响应就先换节点,不要急着改 Ollama;
- 第三步:判断是否需要给服务单独设代理。如果你用的工具以系统代理方式工作、提供本地 HTTP 代理端口,就要做下一步;如果是全局接管所有流量的模式,服务进程的流量本来就会经过线路,可以跳到第五步;
- 第四步:给服务设变量。官方文档建议只设 HTTPS_PROXY,不要设 HTTP_PROXY,否则命令行到本地服务的请求也可能被转走。Windows 在「系统属性—高级—环境变量」里新建用户变量 HTTPS_PROXY,值为 http://127.0.0.1:端口;macOS 执行 launchctl setenv HTTPS_PROXY http://127.0.0.1:端口;Linux 执行 sudo systemctl edit ollama.service ,在 Service 段加一行 Environment=HTTPS_PROXY=http://127.0.0.1:端口,端口以你所用工具里显示的为准;
- 第五步:重启服务。Windows 在托盘图标上右键选「Quit Ollama」再从开始菜单打开;macOS 从菜单栏退出后重开;Linux 执行 sudo systemctl daemon-reload 与 sudo systemctl restart ollama ;
- 第六步:先拉一个小模型验证,比如 ollama pull qwen2.5:0.5b ,几百 MB 就能看出速度与稳定性,再去拉七 B、十四 B 的大模型;
- 第七步:下载中断不用删除重来,再执行一次同样的 pull 命令会从已完成的分片继续,已经校验通过的层不会重复下载;
- 第八步:磁盘不够时迁移模型目录。设置环境变量 OLLAMA_MODELS 指向新路径,例如 D:\ollama\models ,重启服务后再拉取,旧目录里的文件可以整体剪切过去继续使用;
- 第九步:拉完用 ollama list 看已下载的模型和大小,ollama show 模型名 查看量化方式与上下文长度,确认无误后再断开线路离线使用,本地推理本身不需要联网。
按现象排查:卡在哪一步
- 一直停在 pulling manifest:服务进程连不上仓库,多半是代理只设在终端里,按第四步给服务设变量并重启;
- 报 file does not exist 或 pull model manifest: file does not exist:模型名或标签写错了,去官网模型库页面复制完整名称,注意冒号后的参数规模;
- 下载速度一开始正常、随后掉到零:大文件长时间传输对连接稳定性敏感,换一个延迟更低的节点,再重新执行 pull 续传;
- 报 digest mismatch 或校验失败:分片损坏,执行 ollama rm 模型名 删除后重新拉取;
- 报 no space left on device:模型目录所在磁盘满了,按第八步迁移目录;
- 设了代理后 ollama list 也报错:误设了 HTTP_PROXY,命令行到本地服务的请求被转发了,删掉这个变量只留 HTTPS_PROXY;
- Linux 上改了配置不生效:没有执行 daemon-reload,或者编辑的是另一个用户的环境,用 systemctl show ollama | grep Environment 确认变量已加载;
- 从 Hugging Face 拉 GGUF 失败:hf.co 开头的模型走的是另一个域名,同样需要线路可达,具体见下文分工一节。
线路与模型规模怎么搭配
模型文件动辄几个到几十个 GB,比普通网页浏览的流量大得多。免费节点适合先确认仓库能连上、跑通一个小模型;如果你经常对比不同模型、不同量化版本,时长套餐更合适,有效期内不限流量、不限速。只是偶尔拉一两个模型,也可以用流量包,用多少扣多少、不限速,到期未用完会清零。实际下载速度受本地网络、国际出口、节点负载和仓库本身影响。
| 对比项 | 会员节点 | 免费节点 | 国内直连 |
|---|---|---|---|
| 小模型(1GB 以内) | 几分钟内完成 | 通常可以完成 | 时快时慢 |
| 中模型(4–9GB) | 稳定续传 | 可能需要多次续传 | 容易中断 |
| 大模型(20GB 以上) | 建议在空闲时段拉取 | 不建议 | 很难完成 |
| 流量规则 | 时长套餐有效期内不限流量、不限速 | 永久免费、不限流量、不限速 | 按宽带计费 |
| 适合场景 | 经常试新模型 | 先测试能否连上 | 仓库恰好可达时 |
| 断线影响 | 开启断线保护可避免流量走直连 | 同左 | 无 |
量化版本怎么选
同一个模型在仓库里有多个标签,默认标签通常是 q4_K_M 量化,体积小、效果损失可控,是大多数人的首选。显存或内存充裕时可以选 q8_0,体积接近翻倍;fp16 只建议做评测时使用。一个粗略的经验:模型文件大小加上一到两 GB 的余量,就是运行时大约需要的显存或内存,超出就会退回到 CPU 推理,速度明显下降。
所以拉取之前先算账,比下载完才发现跑不动要省事得多。笔记本只有核显、内存十六 GB 的话,三 B 到七 B 的四位量化是比较现实的上限;有一张十二 GB 显存的独立显卡,十四 B 的四位量化可以完整放进显存。拉下来的模型可以用 ollama cp 复制出一个自定义名称,配合 Modelfile 修改系统提示词与上下文长度,这一步完全离线,不需要再连仓库。
多台电脑与离线机器怎么共用模型
家里或办公室有好几台电脑都要跑同一个模型时,没必要每台都重新拉一遍。模型目录里分为两部分:blobs 文件夹存放按哈希命名的模型分片,manifests 文件夹存放模型名与分片的对应关系。只要把整个 models 目录完整拷贝到另一台电脑的同名位置,或者拷到任意位置再用 OLLAMA_MODELS 指过去,重启服务后执行 ollama list 就能看到全部模型,不需要再联网。注意两台机器的 Ollama 版本不要差太多,版本过旧可能识别不了新格式的清单。
公司内网里完全不能出网的机器也是同样的办法:在一台能连线路的电脑上拉好,用移动硬盘或内网共享把目录搬过去。另一种做法是只在一台机器上运行服务,把 OLLAMA_HOST 设为 0.0.0.0 让局域网内其他设备访问 11434 端口,其余电脑只装客户端界面。这种方式省磁盘,但要注意端口不要暴露到公网,否则任何人都能调用你的模型、占满你的显卡。
迁移的推荐顺序是:先在联网机器上拉取并用 ollama show 核对量化方式,再停止目标机器的服务,拷贝目录,最后启动服务并跑一条简单对话验证。顺序反过来,服务在运行时读到不完整的分片,会报清单损坏,只能删掉重拷。
与其他模型和镜像来源的分工
Ollama 官方仓库只收录了经过整理的模型,想用更新的微调版本或者冷门模型,往往要去 Hugging Face 找 GGUF 文件,再用 ollama run hf.co/用户名/仓库名:Q4_K_M 直接拉取。Hugging Face 的访问、大文件下载与镜像站的取舍见 Hugging Face 模型下载指南,那篇讲的分片续传思路和这里完全通用。
很多人还会用 Docker 部署 Ollama 或者配套的网页界面,例如 Open WebUI。这时镜像本身要先从 Docker Hub 拉下来,容器里的 Ollama 也要单独设代理变量,用 docker run 的 -e HTTPS_PROXY=… 传进去,宿主机的设置不会自动继承。拉取镜像超时的处理见 Docker Hub 访问与镜像拉取指南。分工可以这样记:镜像找 Docker Hub,模型找 Ollama 仓库或 Hugging Face,三处都要让真正发起下载的进程看到线路。
常见报错速查表
| 现象 | 原因 | 解决办法 |
|---|---|---|
| 卡在 pulling manifest | 服务进程未走线路 | 给服务设 HTTPS_PROXY 并重启 |
| dial tcp: i/o timeout | 仓库连接超时 | 换节点后重新执行 pull |
| file does not exist | 模型名或标签写错 | 从模型库页面复制完整名称 |
| max retries exceeded | 大文件传输中断 | 换低延迟节点后续传 |
| digest mismatch | 分片损坏 | ollama rm 后重新拉取 |
| no space left on device | 磁盘空间不足 | 设置 OLLAMA_MODELS 迁移目录 |
| 设代理后本地命令报错 | 误设 HTTP_PROXY | 删除该变量只留 HTTPS_PROXY |
高频问答
- 问:为什么终端里设了代理还是慢?答:下载由后台服务完成,终端里的变量服务看不到,要设在系统或服务配置里并重启服务;
- 问:下载中断要从头再来吗?答:不用,再执行一次同样的 pull 命令会续传,已完成的层不会重复下载;
- 问:模型下载完还需要联网吗?答:不需要。本地推理完全离线,只有拉取和更新模型时需要连仓库;
- 问:能把模型放到别的盘吗?答:可以,设置 OLLAMA_MODELS 环境变量指向新目录,重启服务即可;
- 问:国内有镜像可以用吗?答:社区有一些镜像,但更新不及时、来源难以核实,涉及模型文件安全时建议优先用官方仓库;
- 问:拉一个七 B 模型要多少流量?答:q4_K_M 量化大约四到五 GB,经常试新模型建议用时长套餐,有效期内不限流量。
把 Ollama 拉取变成一次性的事
Ollama 拉取模型卡在 pulling manifest、下载中断、超时报错,拆开看都能各自解决:仓库连不上靠线路,代理不生效靠把变量设给服务进程并重启,中断靠续传,空间不够靠迁移目录。养成几个习惯:先拉小模型验证,再拉大模型;只设 HTTPS_PROXY;拉完用 ollama list 核对,然后就可以离线使用。
刺猬VPN 采用 HTTPS+AES 加密传输,支持自定义用户名和密码匿名注册,不需要邮箱和手机号;免费节点永久免费、不限流量、不限速,适合先测试仓库能否连上;时长套餐有效期内不限流量、不限速,适合经常下载大模型的开发者。客户端带断线保护(Kill Switch)和按域名与 IP 的智能分流,线路中断时会拦住流量,不会悄悄退回直连导致下载失败。模型仓库的地址与收录规则以官方最新说明为准,实际可用性取决于当前网络环境。
立即下载刺猬VPN:从注册到连接,三分钟完成
刺猬VPN提供永久免费节点,不限流量;无需邮箱,自定义用户名即可匿名注册。一个账号支持多设备同时在线,实际可用性取决于当前网络环境。