☰
Windows养龙虾指南:用WSL2跑本地AI大模型与Ollama完整实战
2026/10/3 18:04:30 网站建设 项目流程

先说明一下,标题里的“龙虾”是我跟朋友扯淡时来的梗:大家老说Windows就是个“家用鱼缸”,养不了AI大模型这种“海鲜大餐”——大模型要Linux环境、要GPU、要海量内存,Windows原生跑起来各种别扭。可实际上,自从微软把WSL(Windows Subsystem for Linux,Windows子系统)从实验品一路磨成了“正经缸”,在Windows里养一只“AI管家”已经不是什么玄学了。

这篇文章不是给你讲高深论文,也不是让你去租云服务器,而是把我自己踩过的坑、试过好用的路,一步步写下来。读完你能在本地PC上跑起一个真正属于自己的AI管家,能对话、能联网查资料、能帮你写代码,甚至还能顺手用WSL跑Docker、Redis、Elasticsearch这些以前在Windows上让人头大的东西。适合谁看?想在Windows上搞本地AI的小白、想搭AI开发环境的前后端同学、还有那些被“双系统”劝退又心痒痒的朋友。

1. 为什么说“Windows养不了龙虾”?先聊聊这个比喻

1.1 “AI管家”到底是个啥

很多人一听到“AI管家”,先想到的是手机里那种回答天气、定闹钟的语音助手。其实我要搭的“AI管家”,本质是一个跑在自己电脑上的本地大模型服务:它不吃云端接口,不把你的聊天记录传到别人服务器上,数据全程不出门。你可以把它理解成“养在自家缸里的一只龙虾”,喂它多少算力,它就回馈多少“钳子功夫”。

具体一点,它的骨架是Ollama——一个极简的本地大模型运行器,负责把Qwen、Llama这些开源大模型拉下来跑起来;再加上Open WebUI这类界面,让AI管家从“命令行黑盒”变成一个能聊天的网页界面。再往深了说,你还能给它接上知识库、接上代码库,让它从一个“只会唠嗑的家伙”升级成能翻代码、能写文档的私人助理。

那为什么非要用WSL来“养”?因为这套AI生态里,八九成的工具链都是以Linux为“原生气缸”开发的:模型推理库、CUDA驱动、编译链、shell脚本,全是在Linux上打磨得最圆润。Windows原生虽然也能勉强跑,但你会不断撞上“这个依赖不支持Windows”“这个编译脚本是bash写的”之类的南墙。与其跟Windows的底子较劲,不如直接开一条“Linux通道”——这就是WSL的定位。

1.2 Windows直接跑AI工具链,别扭在哪里

我以前也在Windows原生环境里硬折腾过AI,先说几个真实痛点,你一看就懂。

第一,PATH和命令行的“方言”问题。Linux教程里写的是export PATH=$PATH:/opt/bin,Windows下是setx PATH "%PATH%;C:\opt\bin",语法不通用就算了,很多AI工具的安装脚本就是bash写的,Windows上还得好事者去装Git Bash、Cygwin这些模拟层,装完依然会有兼容bug。

第二,本地模型库的“Linux优先”策略。PyTorch、TensorFlow等框架的预编译包,Linux版往往最全、更新最快;很多模型运行库干脆只发Linux wheel。Windows用户想用,就得折腾编译,或者等第三方打包,慢人一拍还容易翻车。

第三,资源开销和隔离问题。有人说可以开虚拟机,用VirtualBox、VMware装个完整Linux。可虚拟机要分配一整块内存和磁盘,启动慢、占用大,GPU透传还得看硬件脸色,日常用起来笨重得很。双系统更不用提,重启切换本身就是一种折磨。

WSL2的聪明之处在于:它不是一个模拟器,而是一个轻量级虚拟机,内核是真的Linux内核,跑起来像个原生进程一样和Windows共享文件、共享网络、共享端口。你既有了Linux的“原生气缸”,又不用放弃Windows的日常习惯。模型推理时WSL2能直接调用NVIDIA的GPU(配合CUDA支持),性能损耗极小。让我用一句话总结:WSL就是微软给Windows开的“海鲜养殖许可证”,有了它,你才能在Windows“鱼缸”里养出龙虾来。

2. WSL安装与系统准备:先把“缸”造好

2.1 确认你的Windows符合条件

在动手之前,咱先做个10秒体检,免得装到一半才发现硬件不支持。

WSL2的实现依赖虚拟化技术,所以你的CPU得支持并开启虚拟化。怎么看?打开任务管理器,切到“性能”选项卡,看“虚拟化”一栏是不是“已启用”。如果显示“已禁用”,得去BIOS里把Intel VT-x或者AMD-V打开,不同主板入口不一样,但基本都在Advanced、CPU Configuration附近。

系统版本方面:Windows 10 2004及以上,或者Windows 11。老版本Windows不是不能装,但WSL2的支持不完整,体验会很别扭。建议直接升级到Win10 2004之后或者直接用Win11,省心。

然后还要检查一个很容易被忽略的点:内存和磁盘。跑一个小尺寸模型(比如Qwen 2.5 7B),建议至少16GB内存;想跑大点的模型,32GB更从容。磁盘方面,WSL默认会吃20GB以上空间,模型文件动辄几个GB,稍后会教你改到D盘,但C盘依然要留出足够的临时空间。

2.2 两条安装路径:命令安装与手动模式

从Windows 10 2004开始,微软给WSL装了一条“快捷通道”:管理员身份打开PowerShell或Windows Terminal,敲一行命令:

wsl --install

这条命令会自动启用“适用于Linux的Windows子系统”和“虚拟机平台”两个Windows功能,然后默认安装Ubuntu发行版,全程基本无人值守。装完系统会提示重启,重启完再打开Ubuntu,按提示设置一个用户名和密码就搞定了。

但这里有个很现实的问题:很多人的wsl --install慢得像乌龟,甚至卡在“正在安装”半天不动。为啥?因为它在从微软服务器下载WSL内核和发行版,而国内网络到微软服务器的链路经常不稳定。这时候别干等,换手动模式:

第一步,用管理员PowerShell手动启用两个功能:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

第二步,重启电脑。

第三步,去微软官网下载“WSL2 Linux内核更新包”(搜“WSL2 Kernel Update”即可),安装完毕。

第四步,在微软商店(Microsoft Store)里搜索Ubuntu,或者Ubuntu 24.04 LTS,直接点获取。商店下载通常比命令行快得多,而且能自动保持更新。

最后把默认版本设为WSL2:

wsl --set-default-version 2

提示:如果商店也下载失败,可以去微软官网的“适用于Linux的Windows子系统”页面,手动下载安装包再安装发行版,这条路最稳。

装完在PowerShell里输入wsl --status,能看到默认版本是2,就说明“缸”已经具备条件了。

2.3 把WSL系统搬到D盘

默认情况下,WSL的发行版会装在C盘用户目录下,一个Ubuntu轻轻松松占掉几十GB。C盘常年爆红的话,咱们把它搬去D盘。

搬家的方式很简单,用wsl --export导出再wsl --import导入。具体步骤:

先停掉WSL:

wsl --shutdown

查看当前发行版名字:

wsl --list --verbose

假设名字是Ubuntu,先导出到一个临时tar文件:

wsl --export --vhd Ubuntu D:\wsl-ubuntu.vhdx

然后注销原发行版:

wsl --unregister Ubuntu

再到D盘建个目录,重新导入:

mkdir D:\WSL wsl --import Ubuntu D:\WSL D:\wsl-ubuntu.vhdx

导入完成后,在PowerShell里wsl -d Ubuntu进去,你就会发现系统盘里装着的老环境原封不动回来了。注意,--unregister会删除原发行版及其内部所有数据,所以导出文件一定要在。如果你用的是C:\Users\你的名字\AppData\Local\Packages\...里现成的vhdx文件,也可以用wsl --manage或者借助第三方工具搬,但导出导入法最通用、不会踩坑。

注意:--unregister这个命令会把原发行版的数据清理掉。导出文件没生成成功之前,坚决别执行,别问我怎么知道的。

2.4 进入Ubuntu的第一件事:更新与换源

第一次进入Ubuntu,先来两条命令把系统基础打好:

sudo apt update sudo apt upgrade -y

如果你发现终端卡在“连接不上archive.ubuntu.com”,或者奇慢无比,那就是网络链路问题了。我的建议是换成国内开源镜像源——这是完全合规且常见的操作,几个知名高校和云厂商都提供Ubuntu源的同步。具体做法:编辑sources.list文件:

sudo sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list sudo apt update

Ubuntu 24.04用的是/etc/apt/sources.list.d/ubuntu.sources,可用正则替换类似的域名。换完源再更新,速度会有质的飞跃。这一步做完,“缸”算是洗好了,可以开始养龙虾了。

3. 用WSL给PC安“AI管家”:Ollama + 界面一步到位

3.1 为什么选Ollama做本地模型管家

讲到底层,跑本地大模型其实有多个方案:直接用Hugging Face的Transformers库写脚本,或用llama.cpp自己编译,或用GPT4All这类桌面应用。但对普通人来说,前两个门槛太高,最后那个对模型选择又不够灵活。

Ollama的好处非常实在:它是一个“一键拉模型、一键跑服务”的本地推理引擎,把模型下载、依赖、GPU调用、API服务全封装好了。你在终端敲一句ollama run qwen2.5:7b,它就自动拉模型、启动服务、给一个交互式命令行聊天窗口;把OLLAMA_HOST设成0.0.0.0之后,它就是个标准的HTTP API服务,前端、脚本、VS Code插件都能直接调用。

用生活类比的话,Ollama就像一个“AI模型管家”,负责把所有模型文件安排得明明白白,你自己只需要关心跟它说话。加上现在Ollama对NVIDIA GPU支持得很好,在WSL2里配合CUDA驱动,推理速度基本能和原生Linux持平,这才是真·养龙虾的“水泵”。

3.2 安装Ollama并拉取模型

在WSL的Ubuntu终端里,执行官方一键脚本:

curl -fsSL https://ollama.com/install.sh | sh

装完先别急着用,先确认它能识别到GPU:

ollama --version

如果一切正常,直接拉一个模型来测试。模型选择很关键,我列个参考表给你:

模型参数规模内存建议适合场景
qwen2.5:0.5b5亿2GB以上极速响应,低配机救星
qwen2.5:7b70亿16GB左右日常对话、写作、代码
qwen2.5:14b140亿24GB以上更强推理,需要大内存
llama3.2:3b30亿8GB以上英文对话,轻量
llama3.1:8b80亿16GB左右通用场景,英文占优

第一次跑,我建议从qwen2.5:7b起步,这是目前中文场景下性价比很均衡的选择:

ollama run qwen2.5:7b

看到对话提示符出来,随便聊两句,比如问它“1+1为什么等于2”,它给出答案,说明AI管家已经“醒”了。这时候你按Ctrl + D退出交互,但模型服务还在后台跑着。

实操心得:Ollama的模型默认存放在/usr/share/ollama/.ollama/models目录(root用户时是/root/.ollama/models)。这个目录很容易吃满系统盘,建议在安装后改到D盘挂载的目录,或者给WSL磁盘扩容。扩容方式有两条:一是改.wslconfig里的size参数,二是在Windows侧用diskpart操作vhdx,推荐前者,主线简单。

3.3 给AI管家装上“脸”:Open WebUI

终端里跟模型聊天虽然“极客”,但家里人或者朋友想用,总不能每人发一份命令行教学。给AI管家装一个网页界面,体验立刻现代化。我推荐Open WebUI(原叫Open WebUI),它支持聊天历史、知识库上传、联网搜索、多模型切换,开箱即用。

安装方式有两种:

方式一,直接用Python环境装:

pip install open-webui open-webui serve

方式二,用Docker跑(前提:WSL里装了Docker,或装了Docker Desktop并启用WSL集成):

docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway \ -v open-webui:/app/backend/data \ --name open-webui --restart always \ ghcr.io/open-webui/open-webui:main

我更推荐Docker方式:环境隔离,升级方便,不用污染系统的Python环境。启动后浏览器打开http://localhost:3000,注册一个本地管理员账号,再把Ollama的地址填进去(通常是http://host.docker.internal:11434),就能在网页里看到可用的模型列表,“AI管家”有了张能见人的脸。

3.4 让Windows访问WSL里的服务

这里有个非常关键的机制,必须讲清楚:WSL2虽然虚拟出了自己的IP,但微软默认做了一层“localhost转发”。简单说,WSL里跑起来服务的端口,Windows浏览器直接用localhost:端口就能访问。比如上面Open WebUI跑在WSL的3000端口,你在Windows的浏览器里输入http://localhost:3000,直接就进界面,不需要去查虚拟IP。

但有几个特殊场景要提防:

一是防火墙拦截。如果你的Windows防火墙规则比较严,或者装过安全软件,可能会拦截WSL的虚拟网卡流量。此时要在防火墙里放行“适用于Linux的Windows子系统”或者对应端口。

二是局域网访问。想让手机或另一台电脑也访问你的AI管家,单纯用localhost就不行了,你得监听WSL的IP,或者通过端口转发把Windows侧端口映射到WSL里。简单做法:在WSL里设置OLLAMA_HOST=0.0.0.0,Open WebUI监听0.0.0.0,然后在Windows侧用netsh interface portproxy做转发。这一步稍微复杂,但局域网内共享AI管家是真的爽,家里任何设备都能用。

netsh interface portproxy add v4tov4 listenport=3000 listenaddress=0.0.0.0 connectport=3000 connectaddress=127.0.0.1

注意:WSL2重启后IP会变,portproxy里的connectaddress要改成WSL当前的IP。嫌麻烦可以不配局域访问,先用着本机。

4. 日常使用与配套优化:让AI管家真正好用

4.1 用VS Code在WSL里写代码调模型

AI管家不能只会聊天,让它帮你写代码才是“龙虾”该有的钳子。这里强烈推荐VS Code的“WSL扩展”,它能把VS Code整个跑进WSL环境里,所有插件、终端、调试器都默认使用Linux环境,而窗口界面还是你熟悉的Windows Windows。

安装步骤很简单:在VS Code里按Ctrl + Shift + X,搜索“WSL”,安装Microsoft官方出的“WSL”扩展。然后按Ctrl + Shift + P,输入WSL: Connect to WSL,VS Code就会自动重连到Ubuntu环境。左侧打开WSL里的文件夹,终端自动变成bash,直接写Python脚本调用Ollama的API都毫无障碍。

我在实际使用中发现,这种“Windows外壳 + Linux内核”的开发方式,几乎能覆盖90%的日常需求:前端代码在Windows侧看,后端模型逻辑在WSL侧跑,文件系统还能互相访问(WSL里能挂载/mnt/d/,Windows里能通过\\wsl$\Ubuntu\访问Linux文件)。开发体验比原来的“双系统来回切”爽太多了。

4.2 WSL里的Python与CUDA环境

做AI开发的朋友,可能不只想“聊个天”,还想训模型、跑微调。那在WSL里搭Python环境就很关键。我的建议是直接用Miniconda:

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh

装完之后用conda建一个环境:

conda create -n ai python=3.11 -y conda activate ai pip install torch torchvision torchaudio

如果机器有NVIDIA显卡,想用GPU训练,还需要在WSL里装CUDA驱动。好消息是:WSL2本身会透传Windows侧的GPU驱动过去,你不用在WSL里重新装显卡驱动,只需要在Windows侧装好最新的NVIDIA驱动,然后在WSL里装CUDA Toolkit(装对应版本的cuda-toolkit即可)。装好后用nvidia-smi看看,能列出GPU信息就说明透传成功。

这里有个常见的坑:在WSL里执行nvidia-smi如果报找不到驱动,多半是Windows侧驱动版本太旧,去NVIDIA官网更新成支持WSL的驱动就行了。

4.3 用Systemd管理AI管家服务

最近新版本的WSL已经原生支持Systemd了,这意味着你不需要再把Ollama和Open WebUI挂在前台终端里。开启方法:在/etc/wsl.conf里加:

[boot] systemd=true

然后在Windows侧执行wsl --shutdown重启WSL。进入WSL后执行:

sudo systemctl enable ollama sudo systemctl start ollama

Open WebUI如果用的是Docker,并且带了--restart always,那它也会随系统自启。有了Systemd和Docker自启,你的AI管家就不再依赖任何打开的终端窗口,开机后就能稳定运行。

4.4 WSL还能顺手帮你干什么

既然已经把WSL养起来了,它的价值远不止跑AI。以前在Windows上装Redis、Elasticsearch、MySQL、Docker的时候,我总觉得像是在用错工具做对的事——Windows版要么没有官方包,要么配置文件的写法跟Linux教程对不上。现在直接在WSL里跑:

sudo apt install redis-server -y sudo service redis-server start

Docker方面,推荐Windows侧装Docker Desktop,然后在设置里启用“Use WSL 2 based engine”,把镜像目录换到D盘,这样WSL里的容器和Windows侧完全打通。Elasticsearch也可以直接用Linux发行版安装包,跟生产环境保持一致,踩坑概率大大降低。

实操心得:WSL不是万能的,它有内存和IO开销,尤其启动大量容器时,记得打开WSL的.wslconfig文件,设置合理的memory和processors限制。一个典型的.wslconfig长这样:

[wsl2] memory=8GB processors=4 swap=2GB localhostForwarding=true

写完后执行wsl --shutdown再重启WSL,配置生效。死死的限制内存,可以避免WSL把Windows主机拖崩。

5. 常见问题与排查实录:踩过的坑都给你标记好

5.1 安装阶段的坑

wsl --install卡住不动:最常见的原因是下载WSL内核和发行版时网络不稳定。解决办法:按第2节的手动模式来,用dism命令开启功能,再通过微软商店或官网离线包安装发行版。等基础功能开启后,wsl --install其实也就只差下载内核了,可以单独去官网下。

错误码wsl/installdistro/service/registerdistro/createvm/hcs/error_file_w:这个错误码的“体质”是创建虚拟机失败。排查顺序:第一,确认“虚拟机平台”功能已开启;第二,检查BIOS里虚拟化是否被关闭;第三,尝试下载最新的WSL2内核更新包手动安装;第四,如果还不行,删除C:\Users\你的名字\AppData\Local\Temp下的WSL临时文件再试。这个序列我从没跳过前面两条就成功的可能性很少。

提示“组件存储已损坏”:有些同学装完功能后重启,系统提示Windows组件存储损坏。这时候用管理员PowerShell跑两句自愈命令:

dism.exe /Online /Cleanup-Image /RestoreHealth sfc /scannow

等修复完成后重启,再安装WSL。注意DISM过程可能比较久,中间别断电、别手动关窗口。

wsl --install 网速慢被重置:微软服务器的下载连接偶尔会被网络波动掐断。我的建议是:用带断点续传的下载工具去拉离线安装包,或者干脆命令装上以后,用商店渠道补发行版。总的一条原则:安装过程“分步走”,别指望一条命令全搞定。

5.2 运行阶段的坑

模型跑不起来,报内存不足:如果拉了个14B甚至更大的模型,内存不够很容易OOM。两个办法:一是换小参数模型,二是给WSL调大.wslconfig的memory。注意,WSL默认最多用主机内存的50%左右,如果你觉得卡,按住Windows键打开资源监视器看看谁在吃内存。

浏览器访问不了localhost:3000:先确认WSL里服务真的起来了,curl http://localhost:3000能通吗?能通,那就是Windows防火墙拦着。去防火墙高级设置里,添加入站规则放行3000端口。如果之前没做localhostForwarding配置,去.wslconfig里确认没有把localhostForwarding设为false。

端口被占用:Windows上要关掉某个端口占用的进程,经典三步:先用netstat -ano | findstr 3000找到PID,再用taskkill /F /PID 进程号关掉。WSL里也可以用sudo lsof -i:3000定位进程。很多时候是之前残留的Docker容器或Open WebUI进程还占着端口。

Docker提示“start the windows daemon from a non-elevated terminal”:这是说Docker Desktop需要管理员权限启动,或者你用了非管理员终端去跑Docker命令。解决办法:关闭所有终端,右键以管理员身份运行Docker Desktop,再用管理员终端跑命令。

WSL系统越来越大,C盘爆红:vhdx文件只会膨胀不会自动缩小。空闲时用wsl --shutdown,然后在Windows的磁盘管理里或者用diskpart选择挂载的vhdx执行compact,能省下不少空间。更彻底的办法是直接停止以后把整个发行版搬迁到D盘,按第2.3节的做法。

5.3 几条独家心得

最后分享几个纯经验向的建议。

第一,养成定期导出的习惯。wsl --export生成的备份文件可以存在D盘甚至移动硬盘,遇到系统更新把WSL搞崩,直接wsl --import还原,半小时满血复活。别问我怎么知道要备份的,都是眼泪换的教训。

第二,模型文件是很值钱的资产。Ollama下载一个大模型动辄几个GB到几十GB,网络不好时下载一次要命。把/root/.ollama/models整个目录单独备份一下,换机或重装时直接拷过去,省下的时间够你看好几集剧。

第三,Windows更新要留个心眼。WSL2很依赖Windows的虚拟机平台,激进更新偶尔会引入不兼容问题。如果你追求稳定,可以在设置里把Windows更新暂停一段时间,或者其他安全方式控制更新策略,但别彻底禁掉安全更新,毕竟安全比省心重要。

最后再分享一个小技巧

我个人在实际使用中的体会是:本地AI管家最爽的场景,不是整天问它“今天天气怎么样”,而是把它当成一个“永远在线、又完全私密”的第二大脑。我会定期往Open WebUI里丢一些工作资料,让它基于本地知识库帮我总结;写代码时直接把VS Code连进WSL,让它解释报错、生成测试用例;甚至局域网内的手机、平板也都能通过“AI管家”访问同一个模型服务。

这篇文章写到这儿,WSL养龙虾的完整路径已经给你铺好了:从理解为什么Windows需要WSL,到安装、搬盘、换源,再到装Ollama和Open WebUI,最后到日常优化和踩坑修复。剩下的,就是你亲手去敲那几行命令了。放心,第一次总会有点手忙脚乱,但只要你把“缸”养好,这只龙虾一定会越养越顺手。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询