WSL 跑 AI Agent 保姆级全攻略:从安装到 GPU 直通、Docker、局域网访问

一份 Windows 上跑 AI Agent 的 WSL 实操教程:从开启虚拟化、安装 WSL、多发行版多实例,到在当地环境跑 Pi / Hermes / Claude Code / Codex CLI,再到 localhost 端口转发、VS Code 集成、GPU 直通与 vLLM 本地推理、Docker、WSLg 图形桌面、镜像网络模式和备份迁移,附完整命令速查表与踩坑清单。

本文整理自视频《Windows 跑 AI Agent,WSL 才是终极答案,别羡慕 Mac 了,WSL 保姆级全攻略,海量实战教程,一期视频精通》 UP 主:技术爬爬虾 | 视频时长约 31 分钟 | 文中 [时间点] 为原视频位置,方便回看对照

先说结论:在 Windows 上跑 AI Agent,WSL 是当前最优解。

原因不复杂 —— 大模型的训练语料里,命令行操作绝大部分是 Linux / macOS 风格的。AI 在 PowerShell 环境里写命令,出错率明显更高,不仅执行慢,还特别浪费 token。把 Agent 放进 WSL,等于让它回到自己熟悉的语言环境里。

目录

  1. 为什么要在 WSL 里跑 AI Agent
  2. 前置条件:开启 CPU 虚拟化
  3. 安装 WSL
  4. WSL 基础使用:多发行版 / 多实例
  5. 环境准备:开发三件套 Git / Node.js / Python
  6. 实战:在 WSL 里跑各类 Coding Agent
  7. 服务访问与 localhost 端口自动转发
  8. VS Code 集成与 Git 操作
  9. Windows 与 Linux 文件系统互通
  10. WSL1 vs WSL2 原理
  11. 显卡直通与本地大模型推理(vLLM)
  12. Docker 实战
  13. 图形界面:WSLg 与完整 Linux 桌面
  14. 网络配置:镜像模式与局域网访问
  15. 两份配置文件:.wslconfig 与 wsl.conf
  16. 备份、迁移与克隆
  17. 高级技巧:命令行互通
  18. 常用命令速查表

一、为什么要在 WSL 里跑 AI Agent

[00:00:00] AI Agent 在 Windows 上表现不如 macOS,根本原因是 Windows 的命令行工具(PowerShell)对 AI 不够友好。而 Windows 里其实藏着一个神器:WSL。只需一行命令,就能在 Windows 上运行一个完整的 Linux 子系统,同时获得两大操作系统的优势。

三大好处

1. Agent 运行更稳、效率更高

很多人遇到过:AI 写 PowerShell 命令频繁报错,不仅执行慢,还特别浪费 token。原因是大模型训练语料里的命令行操作,绝大部分是 Linux / macOS 风格的。AI 在 Linux 环境里出错概率明显更低,效果也更好。

2. 跟生产环境更一致

用 AI 写出来的代码,最终大概率要部署到 Linux 服务器上。如果代码一开始就在 WSL 里编写和测试,后续部署到生产环境时环境差异更小,整个流程更丝滑。

3. 环境隔离更安全

WSL 提供了 Linux 虚拟机与 Windows 宿主机之间的隔离。即使 Agent 在 WSL 里误操作把环境搞坏了,通常也不会影响 Windows 主系统。最坏情况只需要删掉这个 WSL 实例,重新创建一个新的子系统即可。

💡 一句话总结:WSL = Linux 的兼容性 + 生产环境一致性 + 沙箱隔离,是 Windows 跑 AI Agent 的最优解。


二、前置条件:开启 CPU 虚拟化

[00:01:34] 使用 WSL 的前提是开启 CPU 虚拟化,现阶段大部分电脑都默认开启了。确认方法:

  1. 搜索栏搜索 任务管理器
  2. 找到 性能 → CPU
  3. 如果显示「虚拟化:已启用」,就没问题

如果显示未启用

需要进 BIOS 开启:

CPU 厂商BIOS 中的开关名
IntelIntel VMX 虚拟化平台(Intel Virtualization Technology)
AMDSVM Mode

开启后保存重启即可。


三、安装 WSL

[00:02:05]

3.1 一行命令安装

在 Windows 任意位置点击右键 → 在终端中打开,输入:

wsl --install

国内网络建议加上 --web-download,可以大幅提高下载速度:

wsl --install --web-download
  • 如果提示「需要先重启电脑才能继续」,先重启,重启后重新打开 Windows 终端,再执行一次上面的命令。
  • 重启后才会开始正式安装。

3.2 初始化用户名和密码

[00:02:58] 安装完成后需要填写 Linux 虚拟机的用户名和密码:

  • 用户名:自定义(视频中示例 techshapa)
  • 密码:⚠️ 输入密码时屏幕上不会显示任何内容(没有 * 也没有光标移动),但实际上已经输入进去了。输入完成按回车,再输入一遍确认,回车即可。

安装完成的标志:命令行提示符颜色变了,说明已经进入 Linux 子系统。

exit        # 退出当前 Linux 系统

3.3 什么是 Linux 发行版

[00:02:37] WSL 默认安装的是 Ubuntu,也是目前最流行的 Linux 发行版。

所谓「发行版」,就是不同团队基于 Linux 内核打造出来的不同操作系统版本。这个概念有点像安卓手机:每个厂商底层都用安卓系统,但都会在其基础上做定制和封装,形成各自不同的发行版。


四、WSL 基础使用:多发行版 / 多实例

4.1 查看可安装的发行版

[00:03:30]

wsl -l -o      # -l = list,-o = online,列出所有在线可安装的发行版

4.2 安装指定发行版

wsl --install kali-linux

4.3 指定安装目录(不装 C 盘)

[00:03:51] 用 --location 手动指定安装目录:

wsl --install kali-linux --location D:\WSL\kali

安装后同样填写用户名和密码即可。视频中 Kali 装完约 908 MB,文件全部存放在指定目录下。

4.4 查看已安装的虚拟机

wsl -l         # 列出这台电脑上安装过的所有 Linux 虚拟机

4.5 同一发行版装多个实例

[00:04:23] 每个实例都有自己的文件系统和配置,互相隔离、互不影响。

wsl --install Ubuntu --name Ubuntu2

后面也可以继续加 --location 指定安装路径。

4.6 升级 WSL 本体

[00:05:03] 正式使用前建议先执行一次,把 WSL 功能升级到最新,避免功能差异:

wsl --update

4.7 启动方式(三种)

方式命令 / 操作说明
启动默认虚拟机wsl命令行颜色变了即成功
启动指定虚拟机wsl -d kali-linux-d = distribution
终端下拉菜单PowerShell 顶部下拉箭头列出所有实例,点击即在新窗口启动

4.8 设置默认实例

[00:05:34]

wsl --set-default kali-linux
wsl -l          # 确认:kali-linux 后面会标记「默认」

之后不加任何参数直接输入 wsl,启动的就是默认实例。

4.9 关闭虚拟机

[00:06:07] 非常简单 —— 把命令行窗口关掉 / 执行 exit 退出即可。当 WSL 的命令行窗口被关闭或退出后,对应的 Linux 虚拟机会自动关机。


五、环境准备:开发三件套 Git / Node.js / Python

[00:06:21] 运行 Agent 之前,操作系统上一般需要先安装 Git、Node.js、Python。以下以 Ubuntu 为例。

5.1 Git(通常自带)

git --version     # 视频里写的是 git -v

Ubuntu 系统自带 Git,有输出版本号就不用额外装。

5.2 Python(自带 python3,但没有 python)

python3 --version     # 自带,有版本输出
python                # 提示未安装

解决:把 python 命令链接到 python3

sudo apt update
sudo apt install python-is-python3

装完后再执行 python,就能正常链接到 python3 了。

5.3 Node.js(需要手动装,用 nvm)

[00:07:14]

node -v      # 未安装

安装步骤:

  1. 打开 Node.js 官网
  2. 操作系统选 Linux
  3. 安装方式选 nvm(Node Version Manager,Node 版本管理器)
  4. 依次复制官网给的 3 条命令到 Ubuntu 里执行
  5. 最后一条命令安装 Node.js 24

验证:

node -v
npm -v

两个都能打印出版本号,Node.js 就准备好了。


六、实战:在 WSL 里跑各类 Coding Agent

6.1 Pi —— 极简 Coding Agent

[00:07:42]

特点:极简,没有复杂提示词,最大程度减少对 AI 的干扰,非常省 token。

安装:官网选择 curl 安装方式,复制命令到 WSL 执行,中途输入 Y 确认。

首次配置:

cd ~                  # 进入用户主目录
mkdir pi-test         # 创建工作目录
cd pi-test
pi                    # 启动

进入后提示要先配置模型:

/login                # 配置模型
  • 可选「模型订阅」或「API Key」
  • 视频选择 API Key 方式,支持很多厂商的模型
  • 推荐模型:DeepSeek、MiniMax、Kimi

以 Kimi 为例:

  1. 到 Kimi Code 官网控制台 → 新建 API Key → 复制
  2. 回到 WSL,Ctrl + V 粘贴,回车
  3. 配置成功
/model                # 切换模型,例如选择 K2

打个招呼有回复,说明配置成功。

测试:让 Pi 用 Next.js 框架编写一个坦克大战游戏。开发完成后它会提示用浏览器访问某个地址(如 localhost:3000)即可开始游戏。

关键点:直接用 Windows 上的 Edge 浏览器打开这个地址就能玩到运行在 Linux 里的游戏(见第七章)。


6.2 Hermes Agent

[00:13:57]

特点:目前非常流行的 Agent 工具,很长一段时间没有 Windows 版本;现在虽然出了原生 Windows 版,但在 Windows 上表现一直不太好。用 WSL 安装是最佳方案。

安装配置步骤:

  1. 官网安装方式选 Linux,复制 Hermes 安装命令
  2. 粘贴到 WSL(Ubuntu 终端)执行
  3. 这一步选择 Y
  4. 输入这台 Linux 虚拟机的密码
  5. 到这一步选择 第二项「完全设置」
  6. 选择模型厂商 → 视频选 DeepSeek
  7. 到 DeepSeek API 开放平台 → API Keys → 创建,复制 API Key,粘贴回车
  8. Base URL 直接敲回车(用默认)
  9. 选择模型 → 视频选 V4 Flash
  10. 选择 Keep current
  11. 选择即时通信渠道 → 敲空格勾选第三项(最简单),回车,根据提示完成配对
  12. 后面一路使用默认值敲回车
  13. 遇到不知道怎么配置的地方,一律选择 Skip 跳过

重启并启动:

# 关闭窗口重启 WSL 后
hermes          # 启动

打个招呼有回复,配置完成。


6.3 Claude Code

[00:15:15]

# 1. 复制官网安装命令,粘贴进 WSL 执行
# 2. 启动
claude
  • 视频使用 Claude 官方订阅登录
  • 若想接入国内模型,网上有很多方法(视频未展开)
  • 启动后会在终端给出地址,在浏览器打开,复制授权码,粘贴回 WSL,回车即可
  • 打个招呼有回复 → 配置成功

6.4 Codex CLI

[00:15:41]

视频强调:最推荐的方式就是在 WSL 里运行 Codex CLI(命令行版本),功能与 Codex App 一样。

方式 A:在 WSL 里跑 Codex CLI(推荐)

  1. 到 Codex CLI 的 GitHub 首页
  2. 复制 Linux 版安装命令
  3. 粘贴到 WSL,输入 Y
  4. 安装完成后重启 WSL
  5. 输入 codex 启动
  6. 用 ChatGPT 账号登录,登录完成回车开始

方式 B:用 Windows 上的 Codex 桌面应用连进 WSL [00:16:12]

注:视频提到 Codex 已改名为 ChatGPT 桌面应用。

  1. 左下角 设置 → 常规 → 智能体环境 → 切换成 WSL
  2. 下面的终端也切换成 WSL
  3. 按提示重启应用
  4. 重启后选择一个 Windows 文件夹作为项目文件夹
  5. 在 Codex 里可以看到该文件夹以挂载卷的形式链接进了 WSL
  6. 此时 Codex 的环境就是 WSL,使用的命令也都是 Linux 命令

⚠️ 视频的明确建议:方式 B 只能用 Windows 文件夹挂载进 WSL,IO 效率比较低。更推荐直接在 WSL 里用 Codex CLI。


七、服务访问与 localhost 端口自动转发

[00:09:05] 这是一个必须理解的重要知识点。

原理

  • 在 WSL 里运行的服务,使用的是 Linux 虚拟机的 IP 地址
  • Windows 电脑的 localhost 指向的是宿主机的 IP 地址
  • 这两者并不是一回事,理论上在宿主机里敲 localhost 不应该能访问到 WSL 里的服务

但 WSL 有一个特色功能:localhost 端口自动转发

当 WSL 检测到 Linux 里有程序监听端口,就会自动转发到 Windows 宿主机的 localhost 相同端口上。

所以在坦克大战的例子里:

结论:在 Windows 浏览器里直接访问 localhost:3000 就能玩到运行在 WSL 里的游戏。Docker 映射出来的端口同理,宿主机也能直接访问。


八、VS Code 集成与 Git 操作

[00:09:46] 前提:Windows 电脑上已安装 VS Code。

8.1 用 VS Code 打开 WSL 里的项目

cd ~/pi-test      # 先来到工作目录
code .            # code 是 VS Code 的简写,空格 + 点表示打开当前目录

这样就直接使用 Windows 电脑上的 VS Code 打开了 WSL 的工作目录。可以直接查看、修改源代码,浏览器里会同步改动,与在 Windows 上编码调试的体验完全一样。

8.2 在 VS Code 里做 Git 操作

  1. 左侧找到 Source Control(源代码管理)
  2. 点击 Manage Trust → 信任
  3. 点击 Initialize Repository(把目录初始化成 Git 项目)
  4. 填写 commit message,完成提交
  5. 点击 Publish → 填写仓库名 → 回车
  6. 右下角提示代码已上传到 GitHub

8.3 让 AI 帮你做 Git 操作

[00:10:53]

第一步:同步 Git 用户名和邮箱

可以直接对 Agent 说:

「你现在在 WSL 里面,你读一下我 Windows 宿主机上面的 Git 设置,然后在 WSL 里面也配置一下。」

Agent 会读到 Windows 宿主机的配置并同步到 WSL 里。

第二步:让 Agent 改代码 + commit + push

「把坦克大战的标题改一下,然后 commit 一下。」 「推送到 GitHub 上面。」

Agent 会完成修改并提交;在 VS Code 里也能看到 AI 使用 Git 做的提交;推送同样正常。

✅ 结论:使用 WSL 的所有编码、调试、Git 操作,跟在 Windows 上的体验几乎一致,没有什么学习门槛。


九、Windows 与 Linux 文件系统互通

9.1 在资源管理器里看到 Linux 文件

[00:11:42]

打开 Windows 资源管理器,左下角有一个企鹅图标(Linux),展开后有 Ubuntu 等条目,打开即展示该 Linux 子系统的文件目录。

例如视频中的代码在:Ubuntu → home → <用户名> → pi-test → 坦克大战/

Linux 虚拟机上的所有文件都可以用 Windows 资源管理器查看,还可以直接用 Windows 上的软件打开、编辑。

9.2 更快捷:explorer.exe .

[00:12:16]

在 WSL 里先 cd 到目标目录,然后:

explorer.exe .      # 用 Windows 资源管理器打开当前目录

9.3 在 Linux 里访问 Windows 文件

[00:12:39]

df -h               # 查看 Linux 上所有磁盘

会看到 C 盘、D 盘,挂载地址分别是 /mnt/c、/mnt/d。Windows 磁盘直接以挂载卷的形式出现在 Linux 目录里。

cd /mnt/c                          # 进入 C 盘根目录
ls
cd /mnt/c/Users/<用户名>/Desktop   # 进入桌面
ls                                 # 列出桌面上所有内容

9.4 给 AI 发送图片

[00:13:28] 在 WSL 里也能轻松办到:

  1. 在浏览器里截图,保存到桌面
  2. 直接把图片拖拽进 WSL 窗口
  3. 终端会显示图片地址(以挂载卷目录形式显示,对应 C:\Users\<用户名>\Desktop)
  4. 问 AI「你看看这个图里面有什么」→ AI 在 WSL 里也能正确看到图片

9.5 ⚠️ 重要建议:项目放哪里

[00:13:16] 在 WSL 里开发项目时,项目文件夹尽量放在 Linux 的原生目录里(如 ~/),不要放在 Windows 目录里(如 /mnt/c/)。

原因:跨操作系统读取文件会产生额外的 IO 开销,性能明显下降。


十、WSL1 vs WSL2 原理

[00:19:34] 本视频介绍的所有功能都基于最新的 WSL2。

WSL1WSL2
本质一个翻译层基于 Hyper-V 的虚拟化平台
原理把 Linux 系统调用翻译成 Windows NT 内核可理解的指令运行真正的 Linux 内核
Docker❌ 无法运行✅ 可以运行
显卡直通❌✅ 自带
兼容性某些情况下有兼容性问题高
维护成本翻译层维护工作量巨大大大降低

WSL1 不运行真正的 Linux 内核,而是通过 Windows 内核来模拟 Linux 系统,因此会出现兼容性问题(比如无法运行 Docker)。

WSL2 具有真正的 Linux 内核,可以与 Windows 在用户空间上进行网络通信、文件共享;得益于 Hyper-V 强大的硬件虚拟化技术,WSL2 自带显卡直通。


十一、显卡直通与本地大模型推理(vLLM)

11.1 什么是显卡直通

[00:20:34]

在 WSL 里面可以直接调用 Windows 宿主机上的显卡,不需要做任何配置。

⚠️ 千万不要往 Linux 子系统里安装任何显卡驱动! 它可以直接使用 Windows 宿主机上的显卡驱动。

11.2 验证:nvidia-smi

[00:20:57] 在 Ubuntu 子系统里执行:

nvidia-smi

这个命令用来查看 GPU 情况,会直接显示:

  • 显卡驱动版本
  • CUDA 版本
  • 显卡型号(视频中为 RTX 5070)
  • 显存情况等

11.3 为什么这很重要

现阶段大多数 AI 推理框架和深度学习框架(vLLM、PyTorch 等)都优先支持 Linux 操作系统,官方文档和安装教程基本都是以 Linux 为主。

以 vLLM(目前最炙手可热的 AI 推理框架)为例:操作系统支持只有 Linux 版本,所有官方文档全部基于 Linux 编写。

使用 WSL,你就是这些推理框架的"一等公民",照着文档可以实现一切功能。可以把手头的高性能游戏电脑直接变成 AI 开发平台。

11.4 实战:用 vLLM 跑本地推理

[00:21:41]

第 1 步:安装 uv

vLLM 文档要求先用 uv 创建虚拟环境。到 uv 官网找到 Linux 安装命令,复制,在 WSL 里执行。

第 2 步:按文档依次执行 3 条命令(创建虚拟环境等)

第 3 步:启动推理服务

复制 vLLM 官方文档的启动命令,视频中把模型改成了最新的千问 3.5。

⚠️ 踩坑记录:直接这么启动会报错。解决办法(视频让 GPT 帮忙改的):

  • 改一下采样器参数
  • 在后面约束一下显存的占用量(vLLM 中对应 --gpu-memory-utilization 参数)

改完即可正常启动。

第 4 步:测试 [00:22:14]

用 Postman 测试:

  • 填上推理端点(如 http://localhost:8000/v1/...)
  • 填上提示词,例如「vLLM 是一个高性能的推理框架」

实测推理速度非常快,半秒钟就能推理这么多 token。


十二、Docker 实战

[00:17:10] Docker 是基于 Linux 容器化技术,让程序在不同环境中都能一致运行,大幅简化开发和运维流程。

12.1 为什么现在体验好了

现在 WSL 上的最新发行版已经默认启用了 systemd,所以在 WSL 上运行 Docker 的体验跟一台真正的 Linux 电脑一致。

12.2 安装 Docker

[00:17:43] 到 Docker 官方部署指南,安装步骤中只需要执行第 1 条和第 4 条命令:

  1. 复制第 1 条命令 → 粘贴到 WSL 运行
  2. 复制第 4 条命令 → 粘贴到 WSL 运行
  3. 中途输入 Linux 虚拟机的密码
  4. 中间某一步不用管,直接等待 20 秒
  5. 安装完成

12.3 一句话启动 Redis

[00:18:04]

开发后台服务经常用 Redis 作高速缓存。在 Windows 上部署 Redis 相当复杂,有了 Docker 就一句话搞定。

sudo docker run -d -p 6379:6379 redis

⚠️ 注意:在 WSL 里敲 docker 命令,一定要在前面加 sudo。

  • -d 后台运行
  • -p 6379:6379 端口映射(Redis 默认端口 6379)
  • redis 镜像名

12.4 用 Windows 上的客户端连接

  1. 打开 Windows 上的 Redis 图形客户端
  2. New Connection
  3. Host 填 localhost,Port 填 6379
  4. (依据第七章的 localhost 端口自动转发,Docker 映射出来的端口宿主机可直接访问)
  5. 点击 OK → 连接成功
  6. 添加一个 key 并赋值 → Redis 正常工作

12.5 开关机与容器生命周期

[00:19:08]

  • 关闭 WSL 窗口 → Docker 停止运行 → 宿主机也连不上
  • 重新启动 Linux 虚拟机后:
sudo docker ps -a              # 查看所有容器(会看到 Redis 已停止)
sudo docker start <容器ID>     # 重新启动容器

重启后 Windows 客户端重新连接,又能连上了。


十三、图形界面:WSLg 与完整 Linux 桌面

[00:22:29] WSL 不仅支持命令行,也支持图形化界面。分两部分:WSLg 工具 和 远程桌面接入完整桌面。

13.1 WSLg:把单个 Linux 图形应用显示到 Windows 桌面

[00:22:42] WSLg 是 WSL 里的图形界面支持组件,可以把 Linux 图形应用直接显示到 Windows 桌面上。

⚠️ WSLg 不是一个完整的桌面系统,通常只用来把单个应用显示到 Windows 里。

示例:GIMP(类似 Photoshop 的开源免费图像编辑软件)

sudo apt install gimp
gimp

执行后,Windows 界面里就打开了这个 Linux 图形编辑软件,可以正常使用。

13.2 Kali Linux 的完整桌面:Win-KeX

[00:23:23] 视频这里换成了 Kali Linux(不用 Ubuntu):

sudo apt update                    # 更新 apt 索引
sudo apt install kali-win-kex      # 安装 Win-KeX
kex                                # 启动桌面

这样就以远程连接的方式打开了 Kali Linux 的桌面 —— 一个完整可用的 Linux 操作系统桌面,可以在里面操作浏览器、各种图形软件等。

13.3 Ubuntu 的完整桌面:Windows 远程桌面

[00:23:50] 在 Ubuntu 上启动桌面需要依次执行以下命令(视频跳过了执行过程),大致思路:

  1. 安装桌面环境 + xrdp(远程桌面服务)
  2. 启动 xrdp 服务
  3. 最后一条命令会显示这台 Linux 虚拟机的 IP 地址,复制下来

连接方法:

  1. Windows 搜索栏搜索 远程桌面连接
  2. 填入刚才复制的 IP 地址,冒号 + 端口 3389(即 IP:3389)
  3. 点击连接 → 连接进 Ubuntu 虚拟机的桌面

十四、网络配置:镜像模式与局域网访问

14.1 默认 NAT 模式与 localhost 转发

[00:24:15] WSL 默认采用 NAT 网络模式:Linux 子系统位于 WSL 宿主机内部的虚拟网络里,拥有独立的虚拟 IP 地址。通过 localhost 端口自动转发,宿主机可以用 localhost 访问 WSL 里启动的应用。

14.2 虚拟机访问宿主机的服务

[00:24:53] 在 Windows 宿主机上启动了一个 Python 服务(8000 端口),宿主机浏览器用 localhost:8000 可以访问。在 WSL 里怎么访问?

  1. Windows PowerShell 里执行:
ipconfig
  1. 找到自己的网卡,记下 IPv4 地址(这是宿主机在局域网里的 IP)
  2. 在 WSL 里使用这个 IP 地址即可访问宿主机上的服务(如 http://192.168.x.x:8000)

注意:在 NAT 模式下 localhost 不行,要用宿主机的局域网 IP。

14.3 问题:局域网其他设备访问不了 WSL 的服务

[00:25:32] 宿主机能访问虚拟机、虚拟机能访问宿主机,但局域网里的其他设备(比如手机)没法访问 WSL 里的服务。想用手机调试 WSL 上开发的网页服务,现在访问不到。

解决方案:切换成镜像网络模式。

14.4 配置镜像网络模式

[00:25:45]

  1. 来到 C:\Users\<你的用户名>\ 目录
  2. 新建一个文件,名字叫 .wslconfig(这是 WSL 的全局配置文件)
  3. 用记事本打开,加入两行:
[wsl2]
networkingMode=mirrored

意思是:把 WSL 的网络模式从 NAT 网络切换成镜像网络。

  1. 保存配置文件
  2. 把所有 WSL 窗口关闭,等待约 1 分钟,让 WSL 完成重启

镜像模式的原理:Windows 宿主机的网卡会直接镜像一份给 WSL 使用,让 Windows 和 WSL 处于相同的网络环境,并使用相同的局域网 IP。这样局域网里的其他设备也能轻松访问 WSL 上的服务。

💡 额外好处:让网络结构变得更简单。使用 WSL 过程中遇到奇怪的网络问题,可以试试切换成镜像模式,看能不能解决。

14.5 手机实测访问

[00:26:44]

  1. 先把坦克大战应用启动起来(WSL 里监听 3000 端口)

  2. 搜索栏搜 PowerShell → 右键「以管理员身份运行」

  3. 粘贴一串修改 WSL 防火墙设置的命令并回车,让它可以被局域网其他设备访问

    常用写法(视频未完整展示命令原文,仅供参考):

    New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -Action Allow
    
  4. 打开手机浏览器,输入宿主机的 IP 地址(镜像模式下也等同于 WSL 虚拟机的 IP),后面接 :3000

    http://192.168.x.x:3000
    
  5. ✅ 成功访问 —— 局域网其他设备可以访问 WSL 里启动的服务了


十五、两份配置文件:.wslconfig 与 wsl.conf

[00:27:24] 这两个配置文件有本质上的不同:

.wslconfigwsl.conf
文件性质Windows 文件Linux 文件(存放在 Linux 系统里)
作用范围全局通用,对所有 WSL 虚拟机生效只对单个虚拟机生效
位置C:\Users\<用户名>\.wslconfigLinux 内 /etc/wsl.conf
主要用途修改内存、内核、启动方式、网络模式等修改挂载卷、systemd 使用、默认用户等

15.1 示例:用 wsl.conf 关闭自动挂载

[00:28:11] 在 Ubuntu 虚拟机里:

cd /etc
sudo vi wsl.conf

可以看到 systemd 是默认启用的。加入以下配置:

[automount]
enabled=false

这个配置的意思是关闭自动挂载 —— 虚拟机里不再自动挂载 C 盘和 D 盘。

🔒 安全收益:AI 操作的时候,它也无法看到 Windows 上面的文件,可以进一步提高安全性。

保存退出:

Esc  →  :wq!  →  回车

然后关闭虚拟机,官方文档要求至少等待 8 秒,让虚拟机完全重启。

重启完成后验证:

df -h

会看到挂载卷里没有 Windows 的目录了,配置生效。

官方文档里还有关于这两个配置文件更多的功能,不过不太常用,有需求可查阅官方文档。


十六、备份、迁移与克隆

[00:29:16] 在 WSL 上做了很多工作之后,可以把整个 Linux 虚拟机做一个完整备份。

16.1 导出备份

wsl --export Ubuntu ubuntu.tar
  • --export = 导出
  • 后面接虚拟机的名字(如 Ubuntu)
  • 最后填压缩包的名字(如 ubuntu.tar)

导出完成后,当前目录(视频中是桌面)就多了一个 ubuntu.tar 压缩包,备份完成。

16.2 删除虚拟机

wsl --unregister Ubuntu       # 视频里用的是 unregister/删除命令
wsl -l                        # 确认:电脑上没有 Ubuntu 这台虚拟机了

16.3 从备份包还原(导入)

wsl --import Ubuntu D:\WSL\Ubuntu ubuntu.tar
  • --import 后面起个名字(还是叫 Ubuntu)
  • 接下来指定安装路径(视频选了 D 盘目录)
  • 最后填压缩包的地址(可以把压缩包拖拽进终端)
wsl -l      # 确认 Ubuntu 被重新导入回来了

16.4 两个重要用途

  1. 迁移:用导入导出的方法,把电脑上的虚拟机迁移到其他的 Windows 电脑上
  2. 克隆:把同一个备份包导入多次,每次起不同名字,就可以把一个虚拟机克隆好几份
wsl --import Ubuntu2 D:\WSL\Ubuntu2 ubuntu.tar
wsl --import Ubuntu3 D:\WSL\Ubuntu3 ubuntu.tar

这样就把同一个虚拟机克隆成了 Ubuntu、Ubuntu2、Ubuntu3 三份。


十七、高级技巧:命令行互通

[00:30:45] 在 Windows 里甚至可以调用 Linux 命令,两条系统的命令可以混着写。

场景:在 PowerShell 里执行 Get-ChildItem,显示了当前文件夹所有内容。现在想对输出做过滤,但不知道 Windows 版的过滤怎么写,只知道 Linux 版是 grep。

解法:直接混着写

Get-ChildItem | wsl grep video
  • 前半部分 Get-ChildItem 是 Windows 命令
  • 管道符 | 之后 wsl grep video 是 Linux 命令
  • 结果一样达成了过滤效果 ✅

用 wsl <linux命令> 的形式,就能在 PowerShell 管道里直接调用任意 Linux 命令。


十八、常用命令速查表

WSL 管理(在 PowerShell / CMD 里执行)

wsl --install                                  # 安装 WSL(默认 Ubuntu)
wsl --install --web-download                   # 国内加速安装
wsl --update                                   # 升级 WSL 本体
wsl -l -o                                      # 列出在线可安装的发行版
wsl --install kali-linux                       # 安装指定发行版
wsl --install kali-linux --location D:\WSL\kali   # 指定安装目录
wsl --install Ubuntu --name Ubuntu2            # 安装同一发行版的新实例
wsl -l                                         # 列出已安装的虚拟机
wsl                                            # 启动默认虚拟机
wsl -d kali-linux                              # 启动指定虚拟机
wsl --set-default kali-linux                   # 设置默认实例
wsl --export Ubuntu ubuntu.tar                 # 导出备份
wsl --import Ubuntu D:\WSL\Ubuntu ubuntu.tar   # 从备份导入
wsl --unregister Ubuntu                        # 删除虚拟机

Linux 内常用命令

exit                          # 退出 Linux(同时虚拟机关机)
sudo apt update               # 更新 apt 索引
sudo apt install python-is-python3   # 让 python 指向 python3
node -v / npm -v              # 查看 Node/npm 版本
git --version                 # 查看 Git 版本
nvidia-smi                    # 查看 GPU(显卡直通,勿装驱动)
df -h                         # 查看所有挂载磁盘
cd /mnt/c                     # 进入 Windows C 盘
explorer.exe .                # 用 Windows 资源管理器打开当前目录
code .                        # 用 VS Code 打开当前目录
sudo vi /etc/wsl.conf         # 编辑单虚拟机配置文件
sudo apt install gimp && gimp # WSLg 运行 Linux 图形应用
kex                           # 启动 Kali Linux 桌面(需装 kali-win-kex)

Docker(注意 WSL 里必须加 sudo)

sudo docker run -d -p 6379:6379 redis    # 启动 Redis
sudo docker ps -a                        # 查看所有容器
sudo docker start <容器ID>               # 启动已停止的容器

Coding Agent

pi          # Pi(极简 coding agent),/login 配模型,/model 切模型
hermes      # Hermes Agent
claude      # Claude Code
codex       # Codex CLI

配置文件

C:\Users\<用户名>\.wslconfig(全局,所有虚拟机)

[wsl2]
networkingMode=mirrored      # 镜像网络模式,局域网可访问

/etc/wsl.conf(单个虚拟机)

[automount]
enabled=false                # 关闭自动挂载 Windows 磁盘,提升安全性

(修改后需关闭所有 WSL 窗口并等待 8 秒以上让其完全重启)


附:容易踩的坑

坑说明
密码不显示Linux 输入密码时屏幕无任何回显,实际已输入,直接回车即可
装显卡驱动❌ 千万不要在 WSL 里装显卡驱动,直接用宿主机驱动
python 不存在Ubuntu 自带 python3 但没有 python,需装 python-is-python3
docker 权限WSL 里 docker 命令前必须加 sudo
项目放 Windows 目录跨系统 IO 开销大,项目应放在 Linux 原生目录(如 ~/)
忘记 wsl --update功能可能与教程不一致,开始前先升级
关窗口=关机WSL 窗口关闭后虚拟机自动关机,容器也会停
改配置不生效.wslconfig 改完要关掉所有窗口等 1 分钟;wsl.conf 要等 8 秒以上
vLLM 启动报错需要调整采样器参数并约束显存占用量
局域网访问不了默认 NAT 模式,需切镜像模式 + 管理员 PowerShell 放行防火墙

本教程由视频字幕整理,命令行以视频所述为准;个别视频未完整展示的命令(如 Ubuntu 桌面安装命令、防火墙命令原文)已标注说明。