执行 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 的系统服务设置环境变量,改完同样要重启进程。

拉取成功的模型会出现在列表里,占用空间可以在模型目录里直接看到。前期建议先拉一个小参数模型验证整条链路,再拉大模型,避免每次失败都要重头下载。

作者 9823189

发表回复