执行 ollama pull 时停在 pulling manifest 不动,或者过一会儿报 timeout。网页能打开,命令行却拉不下来,通常是 Ollama 服务进程没走代理,或者模型目录写不进去。
先确认服务是怎么启动的
systemctl status ollama journalctl -u ollama -n 50 --no-pager
日志里能看到具体的下载地址和报错。Linux 上 Ollama 作为 systemd 服务运行,你在 shell 里 export 的代理变量它读不到,这是最常见的误区。
把代理写进服务配置
执行下面的命令打开覆盖配置:
systemctl edit ollama
在编辑器里填入:
[Service] Environment="HTTPS_PROXY=http://127.0.0.1:7890" Environment="HTTP_PROXY=http://127.0.0.1:7890"
保存后重载并重启:
systemctl daemon-reload systemctl restart ollama
换掉模型存储目录
默认模型放在 /usr/share/ollama/.ollama,系统盘小的时候下到一半就失败。改到数据盘时同样写进覆盖配置,目录要先建好并给 ollama 用户权限,否则服务起不来。
验证是否真的通了
curl http://127.0.0.1:11434/api/tags
能返回 JSON 列表说明服务正常,再重新 pull。如果仍然卡住,用 curl -I 直接请求日志里那个下载地址,判断是网络还是权限问题。
用 macOS 的话没有 systemd,服务由 launchctl 管理,代理要这样设置:launchctl setenv HTTPS_PROXY http://127.0.0.1:7890,然后重启客户端才生效。Windows 下则是给 Ollama 的系统服务设置环境变量,改完同样要重启进程。
拉取成功的模型会出现在列表里,占用空间可以在模型目录里直接看到。前期建议先拉一个小参数模型验证整条链路,再拉大模型,避免每次失败都要重头下载。