《只有一台电脑!开发环境太乱怎么办?WSL2终极指南,开发者适用!》

2026-04-11 15:331阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐
问题描述:

前言:在Claude-Opus-4.6发布后,试用感慨AI编程之厉害,在这也感谢站内各位提供公益站服务!当我尝试在Windows下进行开发,但各类软件、环境安装在杂七杂八的路径(甚至写死安装在C盘),C盘爆满是常有的事。而当把工作主力机重装为Linux系统,转向Linux开发的时候,发现办公和游戏的时候都不太好用。特此制作教程,用于Windows生活办公+WSL开发的方案。欢迎转载分享,也恳请有相关开发经验的大佬批评指正。


Windows 11 开发环境极致隔离指南 (WSL2 + Docker + D盘迁移)

本教程适用于追求 “C 盘零污染”、使用 Windows 11 且拥有 非系统盘 (D 盘或其他指定磁盘) 的开发者。你只需要安装VSCode在你的Windows上,其他交给WSL。

(未在Windows10测试过!)

一、 准备工作

在开始之前,确保系统环境纯净并开启必要硬件支持。建议系统版本为 Windows 11 Pro版本。

  1. 开启虚拟化:进入 BIOS,确保 AMD-V (AMD) 或 VT-x (Intel) 已开启。
    image998×716 28 KB

  2. 开启 Windows 功能

  • 按下 Win + R,输入 optionalfeatures。(或搜索Windows功能)

  • 勾选:适用于 Linux 的 Windows 子系统虚拟机平台容器Hyper-V平台

2026-02-20-11-54-46-image1258×1288 117 KB

  1. 重启电脑:使底层功能生效。

  2. 设置 WSL 默认版本

  • 管理员身份打开终端,输入:wsl --set-default-version 2
  • 特别提示!首次打开WSL,提示更新至最新版本,若反复拉取失败,可指定当前Powershell/CMD代理,再尝试wsl --update --web-download,此时会尝试从github拉取WSL的最新版本并更新至本机。

二、 安装与配置 WSL

通过“手动导入”法,强制将 Linux 系统安装在 D 盘。

  1. 获取镜像灵魂
  • 从 官方链接 下载 AppxBundle

  • 将后缀改为 .zip 并解压,找到其中的 x64.appx。(如果您使用ARM,或是ARM64架构,亦可在解压结果中找到对应的.appx文件)

  • x64.appx 再次改为 .zip 并解压,提取出 install.tar.gz

  • 当然!我们还有另一种方法。在浏览器打开微软商店(Microsoft Store - 下载适用于 Windows 电脑的应用、游戏等)直接搜索自己喜爱的Linux发行版,譬如Ubuntu 24.04(Ubuntu 24.04.1 LTS - Windows官方下载 | 微软应用商店 | Microsoft Store),复制其链接到微软商店源文件在线解析的网站(https://store.rg-adguard.net),在此可自由下载!下载AppxBundle后按上面所述如法炮制即可。

2026-02-20-11-55-09-image1920×1051 270 KB

2026-02-20-12-09-31-image1920×825 225 KB

  1. 落户 D 盘
  • 创建目标文件夹:D:\WSL\Ubuntu2404

  • install.tar.gz 放入该文件夹。

  1. 执行导入

PowerShell执行*(这个命令会创建一个容器,输入wsl --list --verbose可查看其发行版、WSL的运行版本)*:

wsl --import Ubuntu-24.04 D:\WSL\Ubuntu2404 D:\WSL\Ubuntu2404\install.tar.gz

  1. 初始化用户
  • 进入系统:wsl -d Ubuntu-24.04

  • 创建用户:adduser <用户名> 并按提示设置密码。可自定义用户名。

  • 提权:usermod -aG sudo <用户名>

  1. 锁定默认用户(在 Windows 侧执行):

PowerShell

wsl --manage Ubuntu-24.04 --set-default-user <用户名>


三、 安装与配置 Docker

确保容器镜像不挤占 C 盘空间。

  1. 常规安装:官网下载并安装 Docker Desktop,重启。

  2. 开启 WSL 协同

  • Settings → Resources → WSL Integration。

  • 勾选 Enable Ubuntu-24.04

  • 开启之后,在活跃的WSL系统上,输入docker ps可直接调用宿主机的Docker,无需重复安装。

2026-02-20-11-57-06-image1866×826 61.6 KB

  1. 数据流放 (核心)
  • Settings → Resources → Advanced。

  • 修改 Disk image location 为 D 盘路径(如 D:\Docker\data)。

  • Apply & Restart。

2026-02-20-11-58-41-image1994×852 84.4 KB


四、 后续可选准备 (精装修)

  1. 全局配置 (.wslconfig)
  • 微软官方推荐,直接使用WSL Settings配置WSL的各类选项即可。实测通过此工具配置,会自动生成.wslconfig文件!当然手动创建的效果亦可。

  • Win+R后输入%UserProfile%,在打开的目录下创建.wslconfig,自定义以下内容以限制内存并开启镜像网络(mirrored配置可使WSL直接使用Windows系统代理,而无需额外配置。修改完毕后需完整重启WSL):

    [wsl2] memory=8GB networkingMode=mirrored autoMemoryReclaim=gradual

  1. Ubuntu 深度换源(Ubuntu 24.04及更新版本适用,此版本更新了换源逻辑。)
  • 修改 /etc/apt/sources.list.d/ubuntu.sources,将官方域名替换为 mirrors.aliyun.com(或是其他源,视个人喜好)。

  • 执行 sudo apt update && sudo apt upgrade -y

  1. VS Code 远程连接
  • Windows 端安装 WSL 扩展插件,直接在应用商店搜索,会安装全套组件(包括远程连接WSL,快速配置SSH等组件)。由此你可以自由地在VSCode读写Linux发行版内的任何文件,还有一个自带的终端。(我不想学Vim和nano了!)

image2662×356 73.7 KB

  • 在 Ubuntu 终端输入 code . 实现跨系统无缝开发(初次安装输入Code,会安装适用于VSCode的Server遥控组件。)。
  1. 环境备份(可选):
  • 配置完成后执行 wsl --export Ubuntu-24.04 D:\Backup.tar,一劳永逸。之后可根据备份复制导入为新的WSL镜像,实现多系统多环境开发。

五、 笔者建议

这套方案适用于日常生活中,只有一台电脑的同学。同时可避免软件安装过多过乱,导致游戏帧数下降,办公过程卡顿等情况。

此方案可将生活与开发相分离。若是不想要当前的Linux系统了,在终端输入wsl --unregister <发行版名称>。实现内容清零。(似乎可直接在对应目录删除.vhdx文件即可?)
当想要玩游戏的时候,在终端输入wsl --shutdown,即可完全解放后台占用,让硬件高效服务于游戏。(当然,WSL开机也不启动啊!)


六、扩展教程1-理解配置设置

WSL 的设置主要分布在三个地方:全局配置-Windows侧 (.wslconfig)、发行版配置-Linux内部侧(wsl.conf) 以及 Windows 设置界面。

  1. 核心概念:两个配置文件的区别
    在开始之前,必须分清这两个“长得很像”的文件:
文件名 作用范围 存放位置 主要用途
.wslconfig 全局 (影响所有 Linux 发行版) C:\Users<用户名>.wslconfig 限制内存、CPU、网络模式、内核设置
wsl.conf 局部 (仅影响当前发行版) /etc/wsl.conf (在 Linux 内部) 自动挂载设置、启动命令、默认用户
  1. 全局配置:.wslconfig
    如果你发现 WSL 占用了太多内存,或者网络连不通,通常在这里解决。请先通过WSL Settings可视化界面进行修改,它会将参数自动写入并把配置文件自动创建在%UserProfile%处。若出现意外情况,这个文件需要你手动创建。
    示例配置: 路径: C:\Users\你的用户.wslconfig

[wsl2] #限制 WSL 使用的最大内存,防止 Windows 卡死 memory=8GB #限制使用的 CPU 核心数 processors=4 #开启自动回收内存(非常有用的新特性) autoMemoryReclaim=gradual #网络模式:mirrored (镜像模式) 可以让 WSL 和 Windows 共享 IP,解决很多网络问题 networkingMode=mirrored #开启镜像模式下的 DNS 隧道 dnsTunneling=true #允许 Windows 防火墙过滤 WSL 流量 firewall=true

  1. 发行版配置:wsl.conf (个性化定制,不懂请勿乱改!可以问豆包试试。)
    在你的 Linux 终端里输入 sudo nano /etc/wsl.conf 进行编辑。
    常见用法:#路径: /etc/wsl.conf (在 Linux 内部)

[boot] #开启 systemd 支持 (运行 docker, nginx 等服务必备) systemd=true [automount] #设置 Windows 盘符自动挂载的权限,解决权限全开 (777) 的问题 options = "metadata,umask=22,fmask=11" [network] #禁止 WSL 自动覆盖 /etc/resolv.conf (如果你想手动指定 DNS) generateResolvConf = false [user] #设置进入 Linux 时的默认用户名 default = yourname

六、扩展教程2-理解网络设置

理解 WSL 的网络配置,本质上是在理解 Windows 如何与一个“跑在虚拟机里的 Linux”通信。
WSL 的网络设置主要在 .wslconfig(全局)中完成。为了让你彻底搞懂,我们需要从它的两种模式:NAT 模式(默认)和 镜像模式 (Mirrored) 讲起。

  1. 默认模式:NAT (Network Address Translation)
    在默认状态下,WSL 2 运行在一个轻量级虚拟机中,拥有自己独立的虚拟网卡和私有 IP 地址池。
  • 原理:Windows 充当了“路由器”。WSL 访问外网时,流量经过虚拟交换机进行地址转换(NAT)后再发往物理网络。
  • 痛点:双向访问难:外部设备访问 WSL 需要做端口转发。
  • IP 经常变:每次重启 WSL,其内部 IP 可能会变动。
  • VPN 冲突:开启代理或 VPN 时,由于路由表冲突,WSL 经常断网。
  1. 进阶模式:Mirrored (镜像模式)
    这是微软在较新版本中推出的功能。它让 Linux 直接“镜像” Windows 的网络接口。
  • 原理:WSL 不再拥有独立的虚拟 IP,而是直接使用 Windows 的 IP 地址。你在 Windows 上监听 127.0.0.1:8080,在 WSL 里也能直接访问到。
  • 优点:(1)完美兼容 VPN: Windows 能连上的,WSL 就能连上。(2)简化访问: 无需复杂的端口转发,支持 IPv6。(3)默认使用系统代理,让你无痛切换代理网络
  • 可能出现的问题:为什么网络配置不生效?很多同学修改了 dnsTunneling 或 networkingMode 后发现没变化,通常是因为 WSL 并没有真正重启。真正的重启方式: 在 PowerShell 中运行 wsl --shutdown。仅仅关闭 Linux 窗口是不够的,底层的轻量级虚拟机(VM)仍在后台运行。除此之外, 如果你在 Linux 内部手动修改了 /etc/resolv.conf,那么 .wslconfig 里的 dnsTunneling 可能会失效。也就是说,Linux的设置一般是优先于Windows的设置的。
  • 如果你是开发者,经常需要使用 Docker、VPN 或 跨设备调试,推荐以下这套“全家桶”配置:
配置项 推荐值 理由
networkingMode mirrored 彻底解决代理失效和本地回环访问问题
dnsTunneling true 防止 Linux 无法解析域名
hostAddressLoopback true 允许通过 127.0.0.1 在 Windows 和 WSL 间互访
  • ip addr:查看网卡信息。如果是 mirrored 模式,你会看到和 Windows 一模一样的网卡列表。
  • cat /etc/resolv.conf:查看 DNS 指向。

七、常见问题 (Tips)

  • 文件路径性能: 在WSL中,/mnt目录映射的是宿主机Windows的文件系统。例如/mnt/c,指向宿主机的C盘根目录。永远把你的项目代码放在 Linux 目录下(如 /home/user/project),而不是 /mnt/c/。跨文件系统的读写速度、编译速度都是慢的。这也违背了教程"尽量不占用C盘”的初衷。
  • 内存回收: 开启 autoMemoryReclaim 后,当你在 Linux 里关闭大型进程,Windows 任务管理器里的内存占用会显著下降。
  • 图形界面: 现代 WSL 默认支持 GUI。
  • 建议开启稀疏VHD,由于WSL是动态硬盘,硬盘大小一定会随着使用时间增加而增长,其中包含了部分未被使用但仍被占用的空间。稀疏VHD可以帮助你自动回收这部分空间。可以在WSL Settings中更改全局配置,或是单独对某个发行版使用以下命令:

    wsl --manage <发行版名称> --set-sparse true

image1920×1136 98.2 KB

结语:最好的环境不是功能最多的,而是最受控的。愿此方案能帮你守护系统的纯净,享受 Linux 开发的快感。

网友解答:
--【壹】--:

谁能推荐一个markdown编辑器吗?最好是免费的,用MarkText写的我有点难受啊!


--【贰】--:

为啥docker不直接在wsl里装


--【叁】--:

放弃游戏,linux + win虚拟机 是极好的

以及佬的方案好像只解决了 docker 镜像的占用吧?其实直接把镜像的存储地址放到 wsl 挂载的 D 盘下应该就行了


--【肆】--:

还可以补下wsl网络模式,和代理配置,这个也挺重要


--【伍】--:

确实,我觉得这个就是配置起来最麻烦的了


--【陆】--:

16G的笔记本,1T存储,开个cursor mysql idea navicat 基本就爆内存了,wsl都不敢用,微信qq都不敢挂


--【柒】--:

其实,常用的软件如果能Docker化也是很好的,比如office、微信、qq之类的,将应用和数据分离,目前安装完,后台服务一大堆。但是win下面的软件是不能容器化的吧


--【捌】--:

如果后续觉得某个Linux发行版过于臃肿,可以直接删掉带走。而Docker容器可运行一些固定的中间件,譬如REDIS MYSQL等,他们可以作为持久化服务为不同的发行版同时提供服务。


--【玖】--:

主要是游戏开发放不到WSL里面去,


--【拾】--:

感谢佬分享


--【拾壹】--:

好的好的,我看看怎么写比较通俗


--【拾贰】--:

感谢大佬。


--【拾叁】--:

个人觉得,这是不行的!人家也不想这么做。


--【拾肆】--:

我也思考过这个问题,但是根据现实软件生态、配置难度以及国内软件的习惯来看,日常软件+游戏装WIN,开发工作全部移植到WSL,可能是目前便携性、可扩展性、资源利用性综合较优的方案


--【拾伍】--:

16G做开发,本来就不太够的感觉,等内存降价吧。


--【拾陆】--:

很有道理!不过我太爱玩游戏了,而且我经常使用windows的xbox客户端,所以没有办法。关于你说的这个方法,貌似效果是一样的?因为我用Docker Windows用的不多,这是我自己琢磨出来的方法


--【拾柒】--:

20买的,等毕业换个新的,现在真的太贵了


--【拾捌】--:

确实挺好的, 不过有什么C端的在docker运行的方案吗?桌面软件游戏开发这种。 我之前一直想把开发环境移动到wsl,但是一些桌面的情况感觉wsl还是不能满足


--【拾玖】--:

obsidian?

实在不行vscode吧

标签:软件开发
问题描述:

前言:在Claude-Opus-4.6发布后,试用感慨AI编程之厉害,在这也感谢站内各位提供公益站服务!当我尝试在Windows下进行开发,但各类软件、环境安装在杂七杂八的路径(甚至写死安装在C盘),C盘爆满是常有的事。而当把工作主力机重装为Linux系统,转向Linux开发的时候,发现办公和游戏的时候都不太好用。特此制作教程,用于Windows生活办公+WSL开发的方案。欢迎转载分享,也恳请有相关开发经验的大佬批评指正。


Windows 11 开发环境极致隔离指南 (WSL2 + Docker + D盘迁移)

本教程适用于追求 “C 盘零污染”、使用 Windows 11 且拥有 非系统盘 (D 盘或其他指定磁盘) 的开发者。你只需要安装VSCode在你的Windows上,其他交给WSL。

(未在Windows10测试过!)

一、 准备工作

在开始之前,确保系统环境纯净并开启必要硬件支持。建议系统版本为 Windows 11 Pro版本。

  1. 开启虚拟化:进入 BIOS,确保 AMD-V (AMD) 或 VT-x (Intel) 已开启。
    image998×716 28 KB

  2. 开启 Windows 功能

  • 按下 Win + R,输入 optionalfeatures。(或搜索Windows功能)

  • 勾选:适用于 Linux 的 Windows 子系统虚拟机平台容器Hyper-V平台

2026-02-20-11-54-46-image1258×1288 117 KB

  1. 重启电脑:使底层功能生效。

  2. 设置 WSL 默认版本

  • 管理员身份打开终端,输入:wsl --set-default-version 2
  • 特别提示!首次打开WSL,提示更新至最新版本,若反复拉取失败,可指定当前Powershell/CMD代理,再尝试wsl --update --web-download,此时会尝试从github拉取WSL的最新版本并更新至本机。

二、 安装与配置 WSL

通过“手动导入”法,强制将 Linux 系统安装在 D 盘。

  1. 获取镜像灵魂
  • 从 官方链接 下载 AppxBundle

  • 将后缀改为 .zip 并解压,找到其中的 x64.appx。(如果您使用ARM,或是ARM64架构,亦可在解压结果中找到对应的.appx文件)

  • x64.appx 再次改为 .zip 并解压,提取出 install.tar.gz

  • 当然!我们还有另一种方法。在浏览器打开微软商店(Microsoft Store - 下载适用于 Windows 电脑的应用、游戏等)直接搜索自己喜爱的Linux发行版,譬如Ubuntu 24.04(Ubuntu 24.04.1 LTS - Windows官方下载 | 微软应用商店 | Microsoft Store),复制其链接到微软商店源文件在线解析的网站(https://store.rg-adguard.net),在此可自由下载!下载AppxBundle后按上面所述如法炮制即可。

2026-02-20-11-55-09-image1920×1051 270 KB

2026-02-20-12-09-31-image1920×825 225 KB

  1. 落户 D 盘
  • 创建目标文件夹:D:\WSL\Ubuntu2404

  • install.tar.gz 放入该文件夹。

  1. 执行导入

PowerShell执行*(这个命令会创建一个容器,输入wsl --list --verbose可查看其发行版、WSL的运行版本)*:

wsl --import Ubuntu-24.04 D:\WSL\Ubuntu2404 D:\WSL\Ubuntu2404\install.tar.gz

  1. 初始化用户
  • 进入系统:wsl -d Ubuntu-24.04

  • 创建用户:adduser <用户名> 并按提示设置密码。可自定义用户名。

  • 提权:usermod -aG sudo <用户名>

  1. 锁定默认用户(在 Windows 侧执行):

PowerShell

wsl --manage Ubuntu-24.04 --set-default-user <用户名>


三、 安装与配置 Docker

确保容器镜像不挤占 C 盘空间。

  1. 常规安装:官网下载并安装 Docker Desktop,重启。

  2. 开启 WSL 协同

  • Settings → Resources → WSL Integration。

  • 勾选 Enable Ubuntu-24.04

  • 开启之后,在活跃的WSL系统上,输入docker ps可直接调用宿主机的Docker,无需重复安装。

2026-02-20-11-57-06-image1866×826 61.6 KB

  1. 数据流放 (核心)
  • Settings → Resources → Advanced。

  • 修改 Disk image location 为 D 盘路径(如 D:\Docker\data)。

  • Apply & Restart。

2026-02-20-11-58-41-image1994×852 84.4 KB


四、 后续可选准备 (精装修)

  1. 全局配置 (.wslconfig)
  • 微软官方推荐,直接使用WSL Settings配置WSL的各类选项即可。实测通过此工具配置,会自动生成.wslconfig文件!当然手动创建的效果亦可。

  • Win+R后输入%UserProfile%,在打开的目录下创建.wslconfig,自定义以下内容以限制内存并开启镜像网络(mirrored配置可使WSL直接使用Windows系统代理,而无需额外配置。修改完毕后需完整重启WSL):

    [wsl2] memory=8GB networkingMode=mirrored autoMemoryReclaim=gradual

  1. Ubuntu 深度换源(Ubuntu 24.04及更新版本适用,此版本更新了换源逻辑。)
  • 修改 /etc/apt/sources.list.d/ubuntu.sources,将官方域名替换为 mirrors.aliyun.com(或是其他源,视个人喜好)。

  • 执行 sudo apt update && sudo apt upgrade -y

  1. VS Code 远程连接
  • Windows 端安装 WSL 扩展插件,直接在应用商店搜索,会安装全套组件(包括远程连接WSL,快速配置SSH等组件)。由此你可以自由地在VSCode读写Linux发行版内的任何文件,还有一个自带的终端。(我不想学Vim和nano了!)

image2662×356 73.7 KB

  • 在 Ubuntu 终端输入 code . 实现跨系统无缝开发(初次安装输入Code,会安装适用于VSCode的Server遥控组件。)。
  1. 环境备份(可选):
  • 配置完成后执行 wsl --export Ubuntu-24.04 D:\Backup.tar,一劳永逸。之后可根据备份复制导入为新的WSL镜像,实现多系统多环境开发。

五、 笔者建议

这套方案适用于日常生活中,只有一台电脑的同学。同时可避免软件安装过多过乱,导致游戏帧数下降,办公过程卡顿等情况。

此方案可将生活与开发相分离。若是不想要当前的Linux系统了,在终端输入wsl --unregister <发行版名称>。实现内容清零。(似乎可直接在对应目录删除.vhdx文件即可?)
当想要玩游戏的时候,在终端输入wsl --shutdown,即可完全解放后台占用,让硬件高效服务于游戏。(当然,WSL开机也不启动啊!)


六、扩展教程1-理解配置设置

WSL 的设置主要分布在三个地方:全局配置-Windows侧 (.wslconfig)、发行版配置-Linux内部侧(wsl.conf) 以及 Windows 设置界面。

  1. 核心概念:两个配置文件的区别
    在开始之前,必须分清这两个“长得很像”的文件:
文件名 作用范围 存放位置 主要用途
.wslconfig 全局 (影响所有 Linux 发行版) C:\Users<用户名>.wslconfig 限制内存、CPU、网络模式、内核设置
wsl.conf 局部 (仅影响当前发行版) /etc/wsl.conf (在 Linux 内部) 自动挂载设置、启动命令、默认用户
  1. 全局配置:.wslconfig
    如果你发现 WSL 占用了太多内存,或者网络连不通,通常在这里解决。请先通过WSL Settings可视化界面进行修改,它会将参数自动写入并把配置文件自动创建在%UserProfile%处。若出现意外情况,这个文件需要你手动创建。
    示例配置: 路径: C:\Users\你的用户.wslconfig

[wsl2] #限制 WSL 使用的最大内存,防止 Windows 卡死 memory=8GB #限制使用的 CPU 核心数 processors=4 #开启自动回收内存(非常有用的新特性) autoMemoryReclaim=gradual #网络模式:mirrored (镜像模式) 可以让 WSL 和 Windows 共享 IP,解决很多网络问题 networkingMode=mirrored #开启镜像模式下的 DNS 隧道 dnsTunneling=true #允许 Windows 防火墙过滤 WSL 流量 firewall=true

  1. 发行版配置:wsl.conf (个性化定制,不懂请勿乱改!可以问豆包试试。)
    在你的 Linux 终端里输入 sudo nano /etc/wsl.conf 进行编辑。
    常见用法:#路径: /etc/wsl.conf (在 Linux 内部)

[boot] #开启 systemd 支持 (运行 docker, nginx 等服务必备) systemd=true [automount] #设置 Windows 盘符自动挂载的权限,解决权限全开 (777) 的问题 options = "metadata,umask=22,fmask=11" [network] #禁止 WSL 自动覆盖 /etc/resolv.conf (如果你想手动指定 DNS) generateResolvConf = false [user] #设置进入 Linux 时的默认用户名 default = yourname

六、扩展教程2-理解网络设置

理解 WSL 的网络配置,本质上是在理解 Windows 如何与一个“跑在虚拟机里的 Linux”通信。
WSL 的网络设置主要在 .wslconfig(全局)中完成。为了让你彻底搞懂,我们需要从它的两种模式:NAT 模式(默认)和 镜像模式 (Mirrored) 讲起。

  1. 默认模式:NAT (Network Address Translation)
    在默认状态下,WSL 2 运行在一个轻量级虚拟机中,拥有自己独立的虚拟网卡和私有 IP 地址池。
  • 原理:Windows 充当了“路由器”。WSL 访问外网时,流量经过虚拟交换机进行地址转换(NAT)后再发往物理网络。
  • 痛点:双向访问难:外部设备访问 WSL 需要做端口转发。
  • IP 经常变:每次重启 WSL,其内部 IP 可能会变动。
  • VPN 冲突:开启代理或 VPN 时,由于路由表冲突,WSL 经常断网。
  1. 进阶模式:Mirrored (镜像模式)
    这是微软在较新版本中推出的功能。它让 Linux 直接“镜像” Windows 的网络接口。
  • 原理:WSL 不再拥有独立的虚拟 IP,而是直接使用 Windows 的 IP 地址。你在 Windows 上监听 127.0.0.1:8080,在 WSL 里也能直接访问到。
  • 优点:(1)完美兼容 VPN: Windows 能连上的,WSL 就能连上。(2)简化访问: 无需复杂的端口转发,支持 IPv6。(3)默认使用系统代理,让你无痛切换代理网络
  • 可能出现的问题:为什么网络配置不生效?很多同学修改了 dnsTunneling 或 networkingMode 后发现没变化,通常是因为 WSL 并没有真正重启。真正的重启方式: 在 PowerShell 中运行 wsl --shutdown。仅仅关闭 Linux 窗口是不够的,底层的轻量级虚拟机(VM)仍在后台运行。除此之外, 如果你在 Linux 内部手动修改了 /etc/resolv.conf,那么 .wslconfig 里的 dnsTunneling 可能会失效。也就是说,Linux的设置一般是优先于Windows的设置的。
  • 如果你是开发者,经常需要使用 Docker、VPN 或 跨设备调试,推荐以下这套“全家桶”配置:
配置项 推荐值 理由
networkingMode mirrored 彻底解决代理失效和本地回环访问问题
dnsTunneling true 防止 Linux 无法解析域名
hostAddressLoopback true 允许通过 127.0.0.1 在 Windows 和 WSL 间互访
  • ip addr:查看网卡信息。如果是 mirrored 模式,你会看到和 Windows 一模一样的网卡列表。
  • cat /etc/resolv.conf:查看 DNS 指向。

七、常见问题 (Tips)

  • 文件路径性能: 在WSL中,/mnt目录映射的是宿主机Windows的文件系统。例如/mnt/c,指向宿主机的C盘根目录。永远把你的项目代码放在 Linux 目录下(如 /home/user/project),而不是 /mnt/c/。跨文件系统的读写速度、编译速度都是慢的。这也违背了教程"尽量不占用C盘”的初衷。
  • 内存回收: 开启 autoMemoryReclaim 后,当你在 Linux 里关闭大型进程,Windows 任务管理器里的内存占用会显著下降。
  • 图形界面: 现代 WSL 默认支持 GUI。
  • 建议开启稀疏VHD,由于WSL是动态硬盘,硬盘大小一定会随着使用时间增加而增长,其中包含了部分未被使用但仍被占用的空间。稀疏VHD可以帮助你自动回收这部分空间。可以在WSL Settings中更改全局配置,或是单独对某个发行版使用以下命令:

    wsl --manage <发行版名称> --set-sparse true

image1920×1136 98.2 KB

结语:最好的环境不是功能最多的,而是最受控的。愿此方案能帮你守护系统的纯净,享受 Linux 开发的快感。

网友解答:
--【壹】--:

谁能推荐一个markdown编辑器吗?最好是免费的,用MarkText写的我有点难受啊!


--【贰】--:

为啥docker不直接在wsl里装


--【叁】--:

放弃游戏,linux + win虚拟机 是极好的

以及佬的方案好像只解决了 docker 镜像的占用吧?其实直接把镜像的存储地址放到 wsl 挂载的 D 盘下应该就行了


--【肆】--:

还可以补下wsl网络模式,和代理配置,这个也挺重要


--【伍】--:

确实,我觉得这个就是配置起来最麻烦的了


--【陆】--:

16G的笔记本,1T存储,开个cursor mysql idea navicat 基本就爆内存了,wsl都不敢用,微信qq都不敢挂


--【柒】--:

其实,常用的软件如果能Docker化也是很好的,比如office、微信、qq之类的,将应用和数据分离,目前安装完,后台服务一大堆。但是win下面的软件是不能容器化的吧


--【捌】--:

如果后续觉得某个Linux发行版过于臃肿,可以直接删掉带走。而Docker容器可运行一些固定的中间件,譬如REDIS MYSQL等,他们可以作为持久化服务为不同的发行版同时提供服务。


--【玖】--:

主要是游戏开发放不到WSL里面去,


--【拾】--:

感谢佬分享


--【拾壹】--:

好的好的,我看看怎么写比较通俗


--【拾贰】--:

感谢大佬。


--【拾叁】--:

个人觉得,这是不行的!人家也不想这么做。


--【拾肆】--:

我也思考过这个问题,但是根据现实软件生态、配置难度以及国内软件的习惯来看,日常软件+游戏装WIN,开发工作全部移植到WSL,可能是目前便携性、可扩展性、资源利用性综合较优的方案


--【拾伍】--:

16G做开发,本来就不太够的感觉,等内存降价吧。


--【拾陆】--:

很有道理!不过我太爱玩游戏了,而且我经常使用windows的xbox客户端,所以没有办法。关于你说的这个方法,貌似效果是一样的?因为我用Docker Windows用的不多,这是我自己琢磨出来的方法


--【拾柒】--:

20买的,等毕业换个新的,现在真的太贵了


--【拾捌】--:

确实挺好的, 不过有什么C端的在docker运行的方案吗?桌面软件游戏开发这种。 我之前一直想把开发环境移动到wsl,但是一些桌面的情况感觉wsl还是不能满足


--【拾玖】--:

obsidian?

实在不行vscode吧

标签:软件开发