在 Windows 上玩本地大模型绕不开 WSL 和 Ollama 这对组合。WSL 给 Windows 套上了完整的 Linux 运行环境Ollama 则把 Qwen、Llama 这些开源模型的下载、运行、API 暴露全都承包了。我折腾这套环境花了不少时间踩过的坑包括 WSL 迁移到 D 盘、Ollama 下载慢到怀疑人生、CUDA 驱动对不上、模型 pull 下来一运行就报 500 错误等等。这篇文章就是把这些配置过程完整记录下来从零开始教你在 WSL 里把 Ollama 跑起来最后能让本地大模型正常响应并且能被 VS Code、AnythingLLM 这类工具调用。适合想在 Windows 上本地部署私有大模型的开发者也适合准备搭建 PyTorch 深度学习环境的同学参考。1. 为什么是“WSL 里的 Ollama”而不是原生 Windows 方案1.1 WSL 2 比 WSL 1 强在哪很多人第一次接触 WSL 时不清楚 WSL 1 和 WSL 2 的区别这两者在 Ollama 场景下差别非常大。WSL 1 用的是系统调用翻译层说白了就是把 Linux 的系统调用翻译成 Windows 内核能识别的操作兼容性一般很多依赖 Docker、GPU 直通、完整网络协议栈的软件跑不起来。WSL 2 则完全不同它基于 Hyper-V 虚拟化平台运行一个完整的轻量级 Linux 虚拟机内核是原生的systemd、Docker、CUDA 这些都能顺利工作。Ollama 在运行模型时底层会启动一个 llama-server 进程负责加载模型权重、执行推理并且要跟 GPU 驱动打交道。这个过程对操作系统的完整性要求很高WSL 1 那种翻译层根本扛不住所以必须用 WSL 2。判断自己当前是 WSL 1 还是 2在 PowerShell 里执行wsl --list --verbose就能看到版本号如果不是 2用wsl --set-version Ubuntu 2升级这一步建议先做不然后面所有操作都会出问题。1.2 直接用 Windows 版 Ollama 不香吗Ollama 官方确实提供了 Windows 原生安装包双击就能装也能跑模型。但实际用下来我强烈建议走 WSL 这条路原因有几点。第一Ollama 的 Linux 版本更新最快很多新功能、新模型格式的支持会先在 Linux 版落地Windows 版偶尔会慢半拍。第二本地部署大模型往往不止 Ollama 单独跑你还要配合 Python 脚本、Docker 容器、LangChain 之类的工具链这些生态在 Linux 下几乎零成本兼容在 Windows 原生环境下反而各种别扭。第三WSL 2 的 GPU 直通能力很成熟NVIDIA 驱动在 Windows 侧装好之后WSL 里直接就能用 nvidia-smi 看到显卡推理速度跟原生 Linux 几乎没有差别。举一个实际例子我在 Windows 原生版 Ollama 里跑 Qwen 系列模型时想用 shell 脚本批量拉模型、做模型间的对比测试Windows 的命令行体验实在一言难尽。切到 WSL 之后一个循环就能搞定整个测试流程。对于经常写代码、跑实验的人来说WSL 等于在 Windows 里送了一个免费 Linux不接受反驳。1.3 这套方案适合谁如果你属于下面几类人WSL 中配置 Ollama 这套流程特别适合参考。第一类是 AI 应用开发者需要在本地起一个 OpenAI 兼容接口做测试Ollama 的http://localhost:11434就是现成的。第二类是深度学习爱好者想在本地跑 Qwen、Llama 或者微调小型模型又不想装双系统。第三类是搞嵌入式或安全分析的需要在 WSL 里用到 binwalk 之类的 Linux 工具顺便也想玩玩本地模型。不管哪类只要你的 Windows 版本在 Win10 2004 以上硬件有个 8G 内存起步、最好有 NVIDIA 显卡这套配置就能顺利走通。2. 环境准备把 WSL 这块地基打牢2.1 一条命令安装 WSL 与 Ubuntu新版本的 Windows 安装 WSL 非常简单管理员身份打开 PowerShell执行wsl --install这条命令会一次性把 WSL 功能、虚拟机平台、默认的 Ubuntu 发行版全部装好装完重启即可。如果你之前已经装过 WSL但版本比较老先执行wsl --update把内核更新到最新再继续。想指定发行版可以用wsl --install -d Ubuntu-22.04不指定版本默认装的可能是最新的 Ubuntu 24.04也完全没问题。装完之后首次进入 WSL 会让你设置用户名和密码设置好之后你就拥有了一个跟服务器一模一样的 Linux 环境。需要注意第一次启动可能会卡在 “Installing, this may take a few minutes...”如果超过十分钟没反应大概率是网络下载发行版包太慢可以考虑后面提到的离线导入方案。2.2 把 WSL 迁移到 D 盘拯救 C 盘空间这是必须提前做的一步血泪教训。WSL 默认把整个 Linux 文件系统放在 C 盘的一个 VHDX 虚拟磁盘文件里随着你安装各种软件、拉模型这个文件会疯狂膨胀C 盘分分钟爆红。Ollama 的模型动辄几个 GB如果不控制好存放位置C 盘很快就满了。迁移操作在 PowerShell 里按顺序执行wsl --shutdown wsl --export Ubuntu D:\wsl\ubuntu-backup.tar wsl --unregister Ubuntu wsl --import Ubuntu D:\wsl\Ubuntu D:\wsl\ubuntu-backup.tar--unregister会把现有的发行版整个删除但不会删除刚导出的 tar 文件所以不用担心数据丢。这一步做完之后 WSL 会以 root 用户进入而且默认用户会丢失需要自己设置回来。编辑 WSL 里的/etc/wsl.conf加入[user] default你的用户名保存后在 PowerShell 里执行wsl --shutdown再重新进入就能恢复到原来的用户。迁移之后所有 Linux 内部的文件都存在于D:\wsl\Ubuntu目录下的虚拟磁盘里C 盘压力瞬间消失。2.3 用 .wslconfig 限制内存与 CPU 占用WSL 2 是一个虚拟机默认会占用宿主机很大一部分内存有时候它会把 Windows 卡到怀疑人生。在C:\Users\你的用户名\.wslconfig里写一段配置可以给虚拟机套上缰绳[wsl2] memory8GB processors4 swap2GBmemory 限制 WSL 最大可用内存processors 限制 CPU 核数swap 是内存不够时的交换空间大小。保存之后wsl --shutdown再启动即可生效。如果你的电脑是 16G 内存建议给 WSL 分 8G 左右留 8G 给 Windows 本身否则浏览器加开发工具再加大模型推理整机直接卡死。这个配置我建议在装 Ollama 之前就写好不然模型推理时突然 OOM你都不知道是模型太大还是 WSL 内存配额不够。3. Ollama 安装三种姿势总有一种能救你3.1 官方脚本一键安装等 WSL 环境就绪进入 Ubuntu 终端官方推荐安装方式是执行curl -fsSL https://ollama.com/install.sh | sh这个脚本会自动下载对应架构的 Ollama 压缩包解压到/usr/local创建ollama用户配置 systemd 服务全程无脑。装完验证一下ollama --version能输出版本号说明安装成功。如果执行脚本时卡在下载阶段别急这是典型的网络问题看下一节。装好之后 Ollama 服务默认会启动如果你没开 systemd需要手动跑一遍ollama serve这个细节后面第四部分会详细说。3.2 下载慢的破解方式镜像加速Ollama 的安装脚本默认从官方源下载压缩包在国内网络环境下经常慢到令人窒息甚至直接超时失败。我的处理思路是不依赖官方脚本而是直接把 Ollama 的 Linux 压缩包换成一个能快速访问的下载源。国内很多开源镜像站和云厂商的镜像仓库都有 Ollama 的二进制包比官方源快好几个数量级。大致流程是先用浏览器或下载工具从可用的镜像源把ollama-linux-amd64.tgz这个压缩包拉下来然后上传到 WSL 里比如放在~/目录。接着执行sudo tar -C /usr -xzf ~/ollama-linux-amd64.tgz这条命令会把二进制文件释放到/usr/local/bin等位置跟官方脚本安装出来的效果完全一样。之后手动创建 systemd 服务或者直接跑ollama serve后台挂着。我用这个方案安装的时候下载速度从几十 KB/s 直接跳到满速整个过程不到一分钟。实际上 Ollama 的官方安装脚本做的事也就是解压这个 tgz 包我们可以手动复现还能顺便绕开慢速网络很值得一试。3.3 离线安装包方案适用于完全下不动的情况还有一种更极端的情况镜像源也连不上或者机器本身没有外网访问条件。这时候你需要一台能上网的电脑提前把 Ollama 安装包下载好再用 U 盘或其他方式拷贝进 WSL。离线安装包里除了 ollama 二进制文件通常还需要一些依赖库比如libcurl4、zlib1g等。如果有 apt 缓存或离线 deb 包仓库那最好如果没有建议在相同的 Ubuntu 版本上先把依赖装齐再把整个安装环境打包。一个比较省事的办法是在有网的 Ubuntu 机器上执行apt download把需要的 deb 包都拉下来一起拷贝过去然后dpkg -i *.deb安装。Ollama 本身对依赖的要求不高核心就那几个库缺什么补什么。这条路线适合内网部署、离线办公场景或者网络环境极其恶劣的情况。3.4 安装后的三个必做检查装完 Ollama 别急着拉模型先做三件事。第一确认服务在跑执行curl http://localhost:11434/api/version能返回 JSON 字符串就说明服务正常。第二确认环境变量看看模型存放目录echo $OLLAMA_MODELS为空就默认在~/.ollama/models。第三把模型目录改到一个不容易撑爆磁盘的地方比如 D 盘的某个 Linux 原生路径下。这里有个关键的坑如果你把 OLLAMA_MODELS 设置到/mnt/d/这种 Windows 挂载目录下llama-server 在加载模型时可能因为文件系统权限或 mmap 机制问题直接崩溃报各种奇怪错误。建议把模型放在 WSL 自己的虚拟盘里比如/home/你的用户名/models然后用软链接或者环境变量指过去这样既能控制空间又不会出兼容性问题。4. GPU 加速让 WSL 里的 NVIDIA 显卡真正干活4.1 WSL 中安装 CUDA 的完整流程Ollama 跑模型默认优先调用 GPU没有 GPU 才回退 CPU。而要在 WSL 里使用 GPU需要满足两个条件Windows 侧安装 NVIDIA 驱动WSL 侧安装 CUDA Toolkit。很多人在这里有个误解以为 WSL 里要单独装 NVIDIA 驱动其实不用。WSL 2 的 GPU 直通机制是 Windows 驱动直接把显存和计算能力透传给 Linux所以只要 Windows 侧装了最新的 NVIDIA 驱动WSL 里就能识别到显卡。在 WSL 里安装 CUDA Toolkit 分两步。第一步加 NVIDIA 官方源的仓库wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-keyring_1.1-1_all.deb sudo dpkg -i cuda-keyring_1.1-1_all.deb sudo apt-get update第二步安装 Toolkitsudo apt-get install -y cuda-toolkit-12-6安装过程比较长几百 MB 起步需要耐心等待。装完验证nvidia-smi nvcc --versionnvidia-smi能看到显卡型号和驱动版本nvcc能看到 CUDA 编译器版本。这两条命令都能跑通说明 GPU 环境已经就绪。这个环境不光给 Ollama 用后续你在 WSL 里搭 PyTorch 环境执行pip install torch之后也能直接调用显卡一条链路全部打通。4.2 确认 Ollama 真的用上了 GPU很多人装完 CUDA 之后发现 Ollama 跑模型还是没有 GPU 加速模型加载慢、推理慢整一个 CPU 硬扛的状态。排查方法很简单让模型跑起来之后开另一个终端窗口执行nvidia-smi看进程列表里有没有 ollama 或 llama-server 进程占用显存。没有的话多半是 Ollama 没找到 GPU 运行时。检查一下sudo ldconfig -p | grep cuda确认 CUDA 动态库被系统正确识别。有时候装完 CUDA Toolkit 不会自动刷新动态库缓存手动执行sudo ldconfig就能解决。还有一个常见原因你用的 Ollama 版本太老对最新版 CUDA 的支持不完善直接curl -fsSL https://ollama.com/install.sh | sh重装一遍通常能解决。4.3 没有独显的兜底方案如果你的机器是核显或者 AMD 显卡在 WSL 下没配好也不是不能玩。Ollama 会自动回退到 CPU 推理只是速度慢很多。可以选小参数量模型比如 2B、4B 级别的量化模型CPU 跑起来还算流畅。在ollama run时也可以通过设置环境变量强制 CPUOLLAMA_NUM_PARALLEL1 ollama run qwen3:4b或者直接在运行前把 CUDA 可见设备屏蔽掉CUDA_VISIBLE_DEVICES-1 ollama run qwen3:4bCPU 推理的内存需求比 GPU 更夸张加载模型时要把整个权重读进内存所以 8G 内存跑 7B 以上模型会很吃力建议小模型起步。先跑通再考虑硬件升级。5. 模型下载与本地部署核心环节实操5.1 解决模型下载慢的三个实用技巧Ollama 拉取模型默认走官方模型平台在国内网络下经常出现下载龟速甚至中断。热词里反复出现“ollama 下载模型”下载慢这个问题我用下面几个方法解决过。第一个技巧是挂机等待加断点续传。ollama pull qwen3:4b如果中断重新执行一次同一命令Ollama 的下载机制本身支持断点续传多试几次总能拉完。但体验太差不推荐大模型这么干。第二个技巧是直接从 Hugging Face 镜像站下载 GGUF 格式模型然后导入 Ollama。这是我认为最干净利落的方式。首先用现成的下载工具把模型文件拉下来比如pip install -U huggingface_hub export HF_ENDPOINThttps://hf-mirror.com huggingface-cli download Qwen/Qwen2.5-1.5B-Instruct-GGUF qwen2.5-1.5b-instruct-q4_k_m.gguf --local-dir /home/你的用户名/models/qwen这条命令会把模型下载到指定目录HF 镜像站的速度比官方模型平台快非常多。拿到 GGUF 文件后创建一个 Modelfile 文本文件内容只有一行FROM /home/你的用户名/models/qwen/qwen2.5-1.5b-instruct-q4_k_m.gguf然后执行ollama create qwen2.5-1.5b -f Modelfile这会在 Ollama 里注册一个叫qwen2.5-1.5b的新模型之后就能直接用ollama run qwen2.5-1.5b跑起来。这个方法绕开了 Ollama 官方平台的下载瓶颈而且可选模型范围比官方库更大强烈推荐。第三个技巧是检查磁盘空间。模型下载慢的另一个隐性原因是磁盘满了下载一个 4G 的模型需要至少 8G 空闲空间用来存储分片和临时文件。提前df -h看一眼别等拉到 99% 突然报错才慌张。5.2 实操示例跑起 Qwen 小模型并验证回复环境装好、模型就位之后最让人兴奋的就是第一次对话。用刚才导入的模型试一下ollama run qwen2.5-1.5b进入交互模式后输入“你好”模型会开始流式返回结果。这个过程能看到 token 一个接一个蹦出来体验很直观。如果想通过 API 方式调用另开一个终端curl http://localhost:11434/api/generate -d {model: qwen2.5-1.5b, prompt: 介绍一下你自己, stream: false}返回的 JSON 里有response字段就是模型生成的文本。事实上 Ollama 默认监听0.0.0.0:11434所以不只是本机局域网内其他机器也能访问这个接口用路由器 IP 加端口即可。注意这是把能力暴露到局域网有安全风险后续如果不需要可以通过环境变量OLLAMA_HOST127.0.0.1限制绑定到本机。5.3 模型管理命令速查玩本地模型免不了反复拉模型、删模型常用命令整理一下命令作用ollama list列出本地已有模型ollama pull 模型名拉取模型ollama run 模型名交互式运行模型ollama create 模型名 -f Modelfile从 GGUF 或已有模型创建新模型ollama rm 模型名删除模型释放空间ollama show 模型名查看模型信息如参数、量化方式ollama cp 模型名 新名称复制模型可用于后续定制我个人的习惯是定期ollama list看看有哪些模型占用磁盘不用的直接ollama rm。本地部署大模型最不缺的就是“这个模型好像有用先留着”结果磁盘爆炸之后才开始清理就很被动。6. 高频报错排查实录踩坑经验全记录6.1 WSL 安装阶段的典型报错很多人在安装 WSL 本身时就遇到了错误代码wsl/installdistro/service/registerdistro/createvm/hcs/error_file_n。这个错误的信息量很大拆开看就是 HCSHost Compute System创建虚拟机失败常见原因有四种。第一BIOS 里虚拟化没开启到主板设置里找 Intel VT-x 或 AMD SVM 开关打开后重启。第二Windows 的虚拟机平台功能没启用在管理员 PowerShell 里执行dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart重启后继续。第三第三方安全软件拦截了 Hyper-V 组件的运行临时退出再试。第四Windows 版本过旧WSL 的 HCS 服务对系统版本有要求更新到最新版本再装。排查这类问题有个通用思路先wsl --status看 WSL 整体状态再wsl --update --web-install强制更新内核最后把发行版删了重导入。我遇到过一次怎么都修不好的情况最后的解决方案是wsl --shutdown之后重启电脑再wsl --update问题就消失了很玄学但确实有效。6.2 ollama run 报 500 错误和 llama-server process 崩溃怎么办这是热词里出现频率非常高的问题ollama run qwen3.5:2b error: 500 internal server error: llama-server process。第一次看到这个报错我整个人都懵了模型明明拉取成功一运行就挂。把排查思路整理成一条链路由浅入深排查。第一步查内存。free -h看可用内存如果系统总内存只有 8GWSL 又分了 4G跑大模型时内存耗尽llama-server 直接被系统杀掉就会报 500。解决方式是关掉一些 Windows 占内存的软件或者调大 .wslconfig 里的 memory 配额。第二步查闪存。nvidia-smi看显存占用如果你的显卡显存只有 4G 却非要跑 7B 模型Ollama 会把模型拆成多个 chunk 加载到显存和内存混合推理一旦显存不够进程就会崩。第三步查模型文件完整性。有时候下载断断续续模型文件损坏运行时报错。ollama rm删掉再重新 pull问题概率消失。第四步查日志。这是最有效的排查手段journalctl -u ollama -f或者看 Ollama 的日志目录~/.ollama/logs里的 server.log。日志里会明确告诉你 llama-server 崩溃前最后做了什么比如加载到第几层、在初始化 CUDA 的哪个环节失败。我看到过最典型的日志是CUDA error: out of memory那就是显存不足换小模型或者量化级别更低的模型就能解决。第五步查模型目录文件系统。前面提过如果 OLLAMA_MODELS 放在/mnt/d这类 Windows 挂载盘llama-server 在读取模型时可能无法正确执行 mmap 内存映射直接段错误崩溃。我踩过这个坑最后把模型目录挪回 Linux 原生路径500 错误彻底消失。6.3 VS Code 与 AnythingLLM 的联动配置本地模型跑通之后光在终端里对话太不过瘾把它接入日常开发环境才是正事。VS Code 里装一个 “Remote - WSL” 扩展然后在 Windows 的 VS Code 里按CtrlShiftP输入 “WSL: Connect to WSL”就能直接打开 WSL 里的项目文件夹。此时终端就是 Ubuntu 终端Python 环境、Ollama 命令随手可跑体验跟原生 Linux 开发完全一致。AnythingLLM 是另一个很值得推荐的搭配。它是本地知识库工具可以在设置里把 LLM 提供方选成 “Ollama”填入 Ollama 的 API 地址http://localhost:11434再选择一个本地模型比如qwen2.5-1.5b。之后你就可以把自己的文档扔进 AnythingLLM让本地模型基于文档内容回答问题数据全程不出电脑隐私性拉满。这个组合非常适合处理敏感资料的个人知识库场景。6.4 环境变量与性能调优的要点Ollama 的行为很多都可以通过环境变量控制关键的有这几个。OLLAMA_MODELS指定模型存放目录OLLAMA_HOST指定监听地址OLLAMA_NUM_PARALLEL指定同时处理的请求数OLLAMA_KEEP_ALIVE控制模型在内存中驻留的时间。我常用的配置是在~/.bashrc里加一段export OLLAMA_HOST127.0.0.1 export OLLAMA_NUM_PARALLEL1 export OLLAMA_KEEP_ALIVE5mOLLAMA_KEEP_ALIVE设为 5 分钟可以让模型在第一次加载后保留在内存里短时间内再次请求就不再重新加载响应速度快很多。但注意它也会一直占着内存如果电脑内存小这个值设小一点或者设为 0。性能调优这件事没有银弹核心原则就是模型大小和量化级别必须匹配硬件宁可用 4-bit 量化的小模型流畅跑也不要硬上大模型卡成 PPT。我在实际操作中还有一个体会WSL 里配置 Ollama本质上是在 Windows 上搭一个接近生产环境的 Linux 推理服务。所以思路要放开不只是跑个对话模型还可以把它接入 Python 脚本、Docker 容器、自动化测试流程。最后再分享一个小技巧如果你经常切换模型做对比测试写一个简单的 shell 脚本循环调用ollama run对同一批问题做测试把输出结果重定向到文件里对比起来非常方便。这套环境调顺了后续不管是玩模型微调、跑 RAG 知识库还是做 AI 应用开发都有一个稳定的本地底座可以用。