Ollama 拉取模型太慢是很多人在 VPS 上部署 AI 工具时第一个遇到的坑。尤其是国内服务器,直接连 registry.ollama.ai 经常卡在几 KB/s,等半天还超时。本文从镜像源、网络代理、手动导入三个方向给出可复制的解决方案,顺便聊几个模型管理上的实用技巧。

Ollama 拉取模型慢的根本原因
Ollama 默认从 `registry.ollama.ai` 拉取模型文件(通常是 GGUF 格式),这个域名在国内没有 CDN 节点,也没有直连优化。加上模型动不动几个 GB,网络波动或 DNS 污染都会导致速度极慢甚至中断。别急着重装系统,先检查网络环境和下载来源。
方案一:配置国内镜像源
Ollama 从 v0.1.17 开始支持 `OLLAMA_MIRROR` 环境变量,可以指向一个兼容的镜像仓库。当前国内可用的镜像源有:
• `https://docker.1ms.run` 这类通用镜像(需测试兼容性)
• 或者自建镜像(通过 Nginx 反向代理 registry.ollama.ai)
操作方法:
export OLLAMA_MIRROR="https://mirror.example.com" # 替换为实际可用镜像
ollama serve
如果你用的是 systemd 管理的 Ollama 服务,修改 `/etc/systemd/system/ollama.service` 中的 `Environment` 行:
ini
Environment="OLLAMA_MIRROR=https://mirror.example.com"
然后 `systemctl daemon-reload && systemctl restart ollama`。
注意:镜像源的兼容性会变,建议先 `curl -I` 测试镜像是否返回 200 和正确的 Content-Type。如果镜像不可用,回退到代理方案。
方案二:通过 HTTP 代理加速
如果 VPS 上有稳定的代理(如 Clash、v2ray 透明代理),可以直接让 Ollama 走代理。Ollama 读取标准的 `HTTP_PROXY` 和 `HTTPS_PROXY` 环境变量。
export HTTP_PROXY=http://127.0.0.1:7890
export HTTPS_PROXY=http://127.0.0.1:7890
ollama pull llama3.2:1b
持久化到 systemd 服务:
ini
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890"
Environment="HTTPS_PROXY=http://127.0.0.1:7890"
Environment="NO_PROXY=localhost,127.0.0.1"
重启服务后,所有模型拉取都会走代理。注意代理的带宽和稳定性,避免代理本身成为瓶颈。
方案三:手动下载模型并导入
如果网络实在无解,可以从其他机器或 Hugging Face 下载模型文件(.gguf),然后通过 Ollama 的 Modelfile 导入。这是最稳妥的方法,适合离线环境。
步骤:
1. 在能正常下载的机器上,从 Hugging Face 获取 GGUF 文件,例如 `llama-3.2-1b-instruct.Q4_K_M.gguf`。
2. 将文件上传到 VPS 的某个目录,比如 `/models/`。
3. 创建 Modelfile:
dockerfile
FROM /models/llama-3.2-1b-instruct.Q4_K_M.gguf
4. 构建并运行:
ollama create my-model -f ./Modelfile
ollama run my-model
这样就不依赖网络拉取,完全本地化。缺点是每次更新模型需要手动替换文件并重新创建。
模型管理技巧:缓存、迁移与清理
拉取慢的问题解决后,日常管理也能省不少事。
•查看缓存位置:Ollama 模型默认存储在 `~/.ollama/models/`,可以用 `du -sh ~/.ollama/models/` 查看占用空间。
•清理未使用的模型:`ollama list` 列出所有已拉取的模型,用 `ollama rm <model>` 删除不需要的。注意删除后无法恢复,需要重新拉取。
•迁移到数据盘:如果系统盘空间不足,通过软链接把模型目录移到数据盘:
mv ~/.ollama/models /data/ollama_models
ln -s /data/ollama_models ~/.ollama/models
•设置拉取超时:如果经常因网络中断导致拉取失败,可以增加 ollama 服务的超时时间(通过 systemd 的 `TimeoutStartSec` 或 `TimeoutStopSec`),但更推荐用 `ollama pull` 命令本身的 `–timeout` 参数(v0.5.0+ 支持,具体以官方文档为准)。
老鸟叮嘱避坑模块
1.不要盲目相信镜像源:有些镜像只缓存了热门模型的小版本,冷门模型可能依然走官方源,速度没有改善。先拉一个常见小模型(如 `llama3.2:1b`)测试镜像是否生效。
2.代理设置后检查日志:`journalctl -u ollama -f` 查看拉取时的日志,如果出现 `proxy connect error`,说明代理配置有问题,可能是端口放行或认证缺失。
3.手动导入注意格式:GGUF 文件必须是 Ollama 支持的量化版本,否则 `ollama create` 会报错。建议从 Hugging Face 上标注为 `ollama` 标签的仓库下载。
4.不要在 root 下跑所有服务:Ollama 默认以当前用户运行,如果切换 root 后环境变量丢失,会导致镜像或代理配置失效。建议用普通用户运行,并通过 systemd 的 `User=` 指定。
FAQ
Q1:Ollama 拉取模型太慢,有没有一键加速脚本?
A:没有通用一键脚本,因为镜像源和代理配置依赖你的网络环境。最快的方法是先试代理,不行再手动下载导入。
Q2:设置了 OLLAMA_MIRROR 后拉取还是慢,怎么办?
A:先确认镜像是否可用:`curl -I https://你的镜像地址`。如果返回 200,检查 Ollama 版本是否支持该变量(v0.1.17+)。也可以尝试同时设置代理,让镜像走代理中转。
Q3:手动下载的 GGUF 文件怎么确认是 Ollama 能用的?
A:Ollama 支持大部分 GGUF 格式的模型,但最好从官方模型库或 Hugging Face 上标注为 `ollama` 的仓库下载。创建 Modelfile 后 `ollama create` 会做校验,失败的话检查文件是否完整。
Q4:模型拉取到一半断开了,能续传吗?
A:Ollama 的拉取过程支持断点续传(基于 HTTP Range 请求),但前提是服务器支持。如果经常中断,建议用代理或手动下载。
Q5:VPS 内存只有 2GB,能跑什么模型?
A:推荐 `llama3.2:1b`(约 1.3GB 内存)或 `qwen2:0.5b`。别尝试 7B 以上的模型,会直接 OOM。使用 `ollama run` 时加上 `–num-gpu 0` 强制 CPU 模式,减少显存占用。
Q6:模型下载后想迁移到另一台 VPS,怎么操作?
A:直接打包 `~/.ollama/models/` 目录,复制到新机器的相同路径(注意用户权限),然后 `ollama serve` 即可识别已有模型。也可以在新机器上 `ollama pull` 重新拉取,但速度慢时用文件迁移更快。
Ollama 拉取模型慢的问题,本质上是个网络优化问题。镜像源、代理、手动导入三种方法各有利弊,建议按场景组合使用。模型管理上,定期清理无用模型、合理规划磁盘空间,能让 VPS 上的 AI 部署更省心。
—
**相关阅读:**
– [VPS 部署 AI 工具需要哪些基础?Linux、Docker、Nginx 和域名配置入门](https://www.zhujixuan.com/jishujiaocheng/9747.html)
– [Hermes Agent VPS 部署教程:Docker Compose 安装和初始化配置](https://www.zhujixuan.com/jishujiaocheng/9872.html)
– [1 核 1G VPS 能跑 Ollama 吗?低配服务器可行场景分析](https://www.zhujixuan.com/jishujiaocheng/9864.html)
转载请注明出处:https://www.zhujixuan.com/jishujiaocheng/9853.html 商家投稿邮箱:zhujixuanblog@qq.com
