全网最稳!WSL/Ubuntu 环境下部署 Ollama 的踩坑实录与避坑指南
然后问:"我按教程一步步来的,为什么还是不行?因为教程只告诉你"应该怎么做",没告诉你"会在哪里出错"。本文是真实踩坑记录,按照从安装到推理的顺序,把每一个可能卡住你的点全部列出来,并给出经过验证的解决方案。配置 Ollama 最容易卡住的三个地方:1.GPU 不工作→ 99% 是 Windows 驱动版本问题2.服务启不来→ 端口冲突或 systemd 未启用3.磁盘不足→ 迁移模型目录到大分区
前言
某网友在群里发了这张截图:
$ ollama run qwen3:8b
Error: Post "http://127.0.0.1:11434/api/generate":
dial tcp 127.0.0.1:11434: connect: connection refused
然后问:"我按教程一步步来的,为什么还是不行?"
因为教程只告诉你"应该怎么做",没告诉你"会在哪里出错"。本文是真实踩坑记录,按照从安装到推理的顺序,把每一个可能卡住你的点全部列出来,并给出经过验证的解决方案。
零、从零开始的完整流程(先看这个)
如果你是第一次配置,按下面这个顺序走,可以绕开 90% 的坑:
① 确认 WSL 版本为 2
② 确认 Windows NVIDIA 驱动 ≥ 535(有独显时)
③ 安装 Ollama
④ 启动 ollama serve
⑤ 拉取模型
⑥ 运行测试
每一步完成后再进行下一步,不要跳步。
一、安装前:环境检查(5 分钟,省去后面 2 小时)
# 步骤 1:确认 WSL 版本
wsl --list --verbose
# 期望输出:Ubuntu-22.04 Running 2
# 如果是 VERSION 1,执行:wsl --set-version Ubuntu-22.04 2
# 步骤 2:确认内核版本
uname -r
# 期望:5.15 或更高
# 步骤 3:确认 NVIDIA 驱动(有独显时)
nvidia-smi
# 期望:显示显卡信息和驱动版本
实战案例:GPU 识别失败
场景:一位同学配置了 RTX 4070,nvidia-smi 在 CMD 下正常,但在 WSL 里报错:
bash: nvidia-smi: command not found
排查过程:
# 检查驱动是否透传
ls /dev/dxg
# 如果文件不存在,说明驱动版本太低
# 查看 Windows 侧驱动版本(在 PowerShell 里执行)
Get-WmiObject Win32_VideoController | Select-Object Name, DriverVersion
发现:驱动版本为 527.x,低于 WSL GPU 支持的最低要求 535.x。
解决:到 NVIDIA 官网下载 Game Ready Driver 552.x,安装后重启,WSL 内 nvidia-smi 立刻正常。
⚠️ 关键点:WSL 内不需要也不能单独安装 CUDA Toolkit,驱动由 Windows 侧统一管理。
二、安装 Ollama
标准安装
curl -fsSL https://ollama.com/install.sh | sh
实战案例:安装脚本超时
场景:执行安装脚本后卡在 Downloading ollama...,等了 10 分钟没有进展。
解决方案:手动下载二进制
# 直接从 GitHub Release 下载
curl -L \
https://github.com/ollama/ollama/releases/latest/download/ollama-linux-amd64 \
-o /usr/local/bin/ollama
chmod +x /usr/local/bin/ollama
# 验证安装成功
ollama --version
三、启动服务
前台测试启动
ollama serve
# 期望输出:
# time=2025-xx-xx msg="Listening on [::]:11434 (version 0.6.x)"
实战案例:启动后立刻退出,无任何报错
场景:ollama serve 执行后没有输出,命令直接返回,但 curl http://localhost:11434 没有响应。
排查步骤:
# 开启 debug 模式查看详细日志
OLLAMA_DEBUG=1 ollama serve 2>&1
# 输出(关键错误行):
# listen tcp :11434: bind: address already in use
发现:之前后台运行的 ollama serve & 进程没有被关闭,端口 11434 已被占用。
# 查找占用进程
sudo lsof -i :11434
# 终止旧进程
sudo kill -9 <PID>
# 重新启动
ollama serve &
配置开机自启(避免每次手动启动)
# 前提:确认 systemd 已启用
cat /proc/1/comm
# 应该输出:systemd
# 若输出 init,先在 /etc/wsl.conf 添加以下内容并重启 WSL:
# [boot]
# systemd=true
sudo tee /etc/systemd/system/ollama.service > /dev/null << 'EOF'
[Unit]
Description=Ollama Service
After=network.target
[Service]
ExecStart=/usr/local/bin/ollama serve
Restart=always
RestartSec=3
Environment=HOME=/root
Environment=OLLAMA_MODELS=/root/.ollama/models
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable ollama
sudo systemctl start ollama
# 验证
systemctl status ollama
四、拉取模型
基础命令
ollama pull qwen3:8b
实战案例一:下载到 50% 断开,重试后报 manifest unknown
场景:下载 qwen3:8b(4.7 GB)到一半,网络断开,重新执行 ollama pull 报错:
Error: pull model manifest: file does not exist
解决:
# 清理损坏的临时文件
find ~/.ollama/models -name "*.part" -delete
find ~/.ollama/models -name "*incomplete*" -delete
# 重新拉取(Ollama 支持断点续传)
ollama pull qwen3:8b
实战案例二:磁盘空间不足
场景:拉取模型时报错:
Error: write /root/.ollama/models/blobs/sha256-xxx:
no space left on device
排查:
df -h /
# 输出:/dev/sdb 50G 49G 500M 99% /
# WSL 默认分区只有 50G,已用完
解决:迁移模型到 Windows 大容量磁盘
# 新建目标目录(D 盘)
mkdir -p /mnt/d/ollama_models
# 迁移已有模型
mv ~/.ollama/models/* /mnt/d/ollama_models/
# 在 ollama.service 的 [Service] 部分添加:
# Environment=OLLAMA_MODELS=/mnt/d/ollama_models
sudo systemctl daemon-reload
sudo systemctl restart ollama
# 验证
ollama list
五、运行推理
基础测试
ollama run qwen3:8b "你好,请介绍一下你自己"
实战案例:有 GPU 但跑在 CPU 上(速度只有 2 token/s)
场景:运行模型时速度极慢,观察任务管理器发现 GPU 利用率为 0,CPU 占满。
排查步骤:
# 查看推理时是否调用 GPU
ollama run qwen3:8b --verbose "test" 2>&1 | grep -i "gpu\|cuda\|layers"
# 若 GPU-Util 始终为 0%,说明 GPU 未被调用
watch -n 1 nvidia-smi
发现:Ollama 版本为 0.3.x,对当前 CUDA 驱动版本兼容性有问题。
# 更新 Ollama 到最新版
curl -fsSL https://ollama.com/install.sh | sh
# 重新验证
ollama run qwen3:8b --verbose "test" 2>&1 | grep "gpu"
# 期望输出:gpu layers: 33/33
六、WSL 内存调优
实战案例:运行模型后 Windows 卡顿,内存占用 95%
在 C:\Users\<用户名>\.wslconfig 中限制资源(若文件不存在则新建):
[wsl2]
memory=10GB
processors=6
swap=4GB
# 修改后需重启 WSL(PowerShell 中执行)
wsl --shutdown
# 重新打开 Ubuntu 终端即可
七、快速诊断速查表
| 症状 | 最可能的原因 | 诊断命令 |
|---|---|---|
connection refused |
服务未启动 | systemctl status ollama |
address in use |
端口被旧进程占用 | sudo lsof -i :11434 |
no space left |
磁盘满 | df -h / |
| GPU 利用率 0% | Ollama 版本过旧 | ollama --version |
nvidia-smi not found |
Windows 驱动版本过低 | PowerShell 查驱动版本 |
| 下载中断重试失败 | 缓存损坏 | 清理 *.part 文件 |
八、总结
配置 Ollama 最容易卡住的三个地方:
1. GPU 不工作 → 99% 是 Windows 驱动版本问题
2. 服务启不来 → 端口冲突或 systemd 未启用
3. 磁盘不足 → 迁移模型目录到大分区
按本文流程走,30 分钟内完成从零到推理的完整配置。
配置参考:Windows 11 + WSL2 Ubuntu 22.04 + Ollama 0.6.x + RTX 4070 环境下验证。
更多推荐



所有评论(0)