使用 Ollama 拉取大模型时,进度长期停滞、下载速度只有几十 KB,或者反复出现超时、连接重置,是不少用户都会遇到的问题。由于模型文件通常较大,网络链路中的 DNS 解析、跨境连接、代理配置、磁盘空间和安全软件都可能影响下载。本文将从问题定位、代理设置、镜像方案和离线导入四个方面,给出一套可操作的优化流程。🚀
一、先判断慢在哪个环节
不要一开始就频繁删除模型或重新安装 Ollama。建议先执行一次拉取命令,观察终端输出:
ollama pull 模型名称
如果长时间停留在“pulling manifest”,通常意味着清单请求没有顺利完成,应重点检查 DNS、代理或网络访问;如果已经显示某个分层文件的下载进度,但速度较慢,则更可能是出口带宽、跨区域链路或代理节点质量导致。若下载到较高进度后反复重试,还需要排查磁盘剩余空间、连接稳定性和安全软件拦截。
同时可以尝试切换手机热点或其他网络。更换网络后速度明显恢复,基本可以确定问题不在 Ollama 程序本身,而在当前网络链路。企业、校园和公共网络还可能存在 HTTPS 代理、访问控制或连接时长限制。
二、使用 HTTPS 代理改善下载链路
Ollama 官方建议通过 HTTPS_PROXY 环境变量为模型拉取请求配置代理,并特别提醒避免随意设置 HTTP_PROXY,因为模型拉取使用 HTTPS,而错误的 HTTP 代理设置可能干扰客户端与本地 Ollama 服务的连接。详细说明可查看 Ollama FAQ。
Linux 系统配置
如果 Ollama 作为 systemd 服务运行,可以执行:
sudo systemctl edit ollama.service
在打开的配置中加入以下内容,将地址替换为自己实际可用的代理:
[Service]
Environment="HTTPS_PROXY=http://127.0.0.1:7890"
Environment="NO_PROXY=localhost,127.0.0.1"
保存后重新加载并重启服务:
sudo systemctl daemon-reload
sudo systemctl restart ollama
配置完成后再次执行拉取命令进行测试。如果代理软件运行在另一台设备上,应填写该设备可访问的局域网地址,不能继续使用 127.0.0.1。
Windows 与 macOS 配置
Windows 用户可以退出任务栏中的 Ollama,在系统“环境变量”中新增 HTTPS_PROXY,然后重新启动 Ollama。macOS 应用版可在终端执行:
launchctl setenv HTTPS_PROXY "http://127.0.0.1:7890"
随后彻底退出并重新打开 Ollama。需要注意,代理地址的协议应与代理软件提供的端口类型对应;本地 HTTP 代理端口不要误写成 SOCKS 地址。🔧
三、Docker 环境中的代理设置
通过 Docker 运行 Ollama 时,只给宿主机终端设置代理并不一定有效,因为真正发起下载请求的是容器。可以在创建容器时传入环境变量:
docker run -d -e HTTPS_PROXY=http://代理地址:端口 -e NO_PROXY=localhost,127.0.0.1 -p 11434:11434 ollama/ollama
如果代理运行在宿主机,容器中的 127.0.0.1 指向容器自身,而不是宿主机。Docker Desktop 环境可根据平台使用宿主机访问名称,Linux 则应结合网桥地址或 host-gateway 配置。企业代理使用自签名证书时,还需要把对应 CA 证书安装进容器,否则可能出现证书校验失败。
四、理性选择镜像源方案
网上常见的“修改 Ollama 镜像地址”教程需要谨慎辨别。Docker 镜像加速器只负责加速 ollama/ollama 容器镜像,不等于加速 Ollama 模型仓库。此外,Ollama 官方文档目前主要提供的是 HTTPS 代理配置,并未把任意第三方模型镜像作为统一、通用的配置方式。
如果准备使用第三方反向代理或社区镜像,应优先确认以下事项:
- 是否明确支持 Ollama 模型清单和分层文件请求,而不只是 Docker Registry。
- 是否能够校验文件完整性,避免模型损坏或内容被替换。
- 是否持续维护,并清楚说明同步延迟、模型范围和隐私政策。
- 是否要求输入账号令牌、代理密钥或其他敏感凭据。
对于团队环境,更稳妥的方案是在网络条件较好的机器上集中下载,完成校验后通过内网文件服务分发,或者部署由团队自行管理的缓存与代理。这样既能减少重复流量,也比依赖来源不明的公共镜像更可控。🛡️
五、使用 GGUF 文件离线导入
当网络代理仍不稳定时,可以从可信来源获取兼容的 GGUF 模型文件,再通过 Ollama 离线导入。新建名为 Modelfile 的文件,并写入:
FROM /完整路径/模型文件.gguf
然后执行:
ollama create 自定义模型名 -f Modelfile
ollama run 自定义模型名
Ollama 也支持导入部分 Safetensors 模型或适配器,具体架构、量化格式和操作方式应以 官方模型导入文档为准。下载第三方权重前,还应检查模型许可证、文件哈希、量化版本以及上下文长度,避免把“能够导入”误认为“运行效果完全一致”。
六、进一步优化存储与维护
模型下载不仅消耗网络,也会大量占用磁盘。可以使用 OLLAMA_MODELS 环境变量调整模型存储目录,例如迁移到容量更大的 SSD。修改目录后要确保 Ollama 服务账户拥有读写权限,否则可能出现下载完成却无法保存的情况。
日常维护时建议遵循以下顺序:
- 先确认模型名称和标签是否正确,避免下载错误版本。
- 检查磁盘空间,并为临时文件和后续模型预留余量。
- 使用稳定的有线网络或质量较好的代理节点。
- 保留终端错误信息和服务日志,方便定位超时、证书或权限问题。
- 未确认文件完整性前,不要手动复制不完整的 blobs 文件。
总结
解决 Ollama 模型下载缓慢,最有效的思路不是盲目寻找所谓“万能镜像源”,而是先区分清单请求、分层下载、磁盘写入和证书校验等不同环节。个人用户可优先配置可靠的 HTTPS 代理;Docker 用户要确保代理变量真正进入容器;团队用户则适合采用内部缓存、统一下载和离线分发方案。对于无法稳定直连的环境,使用可信 GGUF 文件并按照官方流程导入,通常是更安全、可控的替代方案。✅