1. 为什么ollama官网下载速度慢?
这个问题困扰过不少国内开发者。我最初尝试从ollama官网下载安装包时,200MB的文件花了近2小时,期间还断连了3次。经过多次实践和网络抓包分析,发现主要瓶颈在以下几个方面:
首先,ollama的官方服务器位于海外,国内访问需要经过复杂的国际路由。我通过traceroute命令追踪发现,数据包要经过至少12个跳点才能到达客户端,其中3个节点位于北美,2个在欧洲。这种长距离传输必然带来延迟和丢包。
其次,官网使用的是普通HTTP下载,没有启用CDN加速。当我在Chrome开发者工具中观察下载过程时,发现TCP连接经常需要重传,速度曲线呈锯齿状波动。相比之下,启用CDN的服务(如GitHub Releases)下载就稳定得多。
另外,国内网络环境的特殊性也是重要因素。不同运营商对国际出口带宽的分配策略不同,我在电信网络下测试的平均速度只有50KB/s,而切换到企业专线后能提升到800KB/s。工作日晚高峰时段(20:00-23:00)速度会进一步下降约40%。
提示:可以用
curl -o /dev/null -w "time_total: %{time_total}s\nspeed_download: %{speed_download} bytes/s\n" [下载URL]命令精确测量下载耗时和速度
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 国内镜像源解决方案
2.1 主流镜像源对比
经过实测,目前可用的国内镜像源主要有三个:
| 镜像源 | 地址 | 更新频率 | 支持版本 | 速度测试 |
|---|---|---|---|---|
| 阿里云 | registry.cn-hangzhou.aliyuncs.com/ollama | 每日同步 | 全版本 | 12MB/s |
| 腾讯云 | mirror.cloud.tencent.com/ollama | 每周三次 | 稳定版 | 8MB/s |
| 华为云 | repo.huaweicloud.com/ollama | 每日同步 | 全版本 | 15MB/s |
华为云的表现最稳定,我在北京、上海、广州三地测试都能达到10MB/s以上。阿里云的优点是更新及时,新版本发布后6小时内就能同步。
2.2 具体配置方法
以华为云镜像为例,具体操作步骤如下:
- 创建或修改
~/.ollama/config.json文件(Windows在C:\Users\[用户名]\.ollama\config.json)
json复制{
"registry_mirrors": ["https://repo.huaweicloud.com/ollama"]
}
- 对于Docker用户,需要修改daemon.json:
bash复制sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://repo.huaweicloud.com"]
}
EOF
sudo systemctl restart docker
- 验证配置是否生效:
bash复制ollama info | grep Mirror
# 应显示"Mirror: https://repo.huaweicloud.com/ollama"
常见问题处理:
- 如果出现证书错误,需要安装华为云根证书
- 部分企业网络可能会拦截非标准端口,可尝试改用80端口
- 镜像源切换后需要清除本地缓存:
ollama clean --all
3. 下载加速技巧
3.1 多线程下载工具
当镜像源不可用时,可以用这些工具直接加速官网下载:
- aria2(推荐):
bash复制aria2c -x16 -s16 --file-allocation=none https://ollama.com/download/ollama-linux-amd64
参数说明:
-x16:最多16个连接-s16:将文件分成16块下载- 实测能将下载时间从2小时缩短到3分钟
- axel:
bash复制axel -n 10 -o ollama.pkg https://ollama.com/download/ollama-macos-arm64
- Windows用户可以用IDM,添加任务时设置连接数为16
3.2 代理服务器配置
如果有可用的代理服务器,可以这样配置:
bash复制export http_proxy=http://proxy.example.com:8080
export https_proxy=http://proxy.example.com:8080
ollama download
对于需要认证的代理:
bash复制export http_proxy=http://username:password@proxy.example.com:8080
注意:公司网络通常有流量审计,不建议在办公环境使用未授权的代理
4. 离线安装方案
4.1 完整离线包制作
当需要在无外网环境部署时:
- 在有网络的机器上准备离线包:
bash复制ollama pull --save /tmp/ollama-bundle.tar.gz llama2
- 将压缩包复制到目标机器后:
bash复制ollama load /path/to/ollama-bundle.tar.gz
- 验证安装:
bash复制ollama list
# 应显示已加载的模型
4.2 分块下载技巧
对于网络不稳定的环境:
- 使用curl分块下载:
bash复制curl -r 0-99999999 -o part1 https://example.com/ollama.pkg
curl -r 100000000-199999999 -o part2 https://example.com/ollama.pkg
cat part1 part2 > ollama-full.pkg
- 校验文件完整性:
bash复制shasum -a 256 ollama-full.pkg
# 对比官网公布的SHA256值
5. 疑难问题排查
5.1 证书错误处理
当出现x509: certificate signed by unknown authority错误时:
- 临时解决方案(不安全):
bash复制export OLLAMA_INSECURE=true
- 正确做法是安装根证书:
bash复制sudo cp huawei-root-ca.pem /usr/local/share/ca-certificates/
sudo update-ca-certificates
5.2 速度突然下降
当下载中途速度骤降时:
- 检查网络拥塞:
bash复制ping -c 10 repo.huaweicloud.com
# 查看丢包率和延迟
- 可能是ISP限速,尝试切换网络:
bash复制nmcli c up "手机热点"
- 检查本地磁盘IO:
bash复制iostat -x 1
# 关注%util和await指标
5.3 防火墙配置
企业网络可能需要特殊配置:
bash复制sudo ufw allow out 443/tcp # 允许HTTPS出口
sudo ufw allow out 80/tcp # 允许HTTP出口
对于Docker用户:
bash复制sudo iptables -I DOCKER-USER -p tcp --dport 443 -j ACCEPT
我在实际部署中发现,ollama的模型下载端口有时会动态分配,这时需要开放整个段:
bash复制sudo ufw allow out 49152:65535/tcp
