《只有一台电脑!开发环境太乱怎么办?WSL2终极指南,开发者适用!》
- 内容介绍
- 文章标签
- 相关推荐
前言:在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版本。
-
开启虚拟化:进入 BIOS,确保
AMD-V(AMD) 或VT-x(Intel) 已开启。
image998×716 28 KB -
开启 Windows 功能:
-
按下
Win + R,输入optionalfeatures。(或搜索Windows功能) -
勾选:适用于 Linux 的 Windows 子系统、虚拟机平台、容器、Hyper-V平台。
2026-02-20-11-54-46-image1258×1288 117 KB
-
重启电脑:使底层功能生效。
-
设置 WSL 默认版本:
- 管理员身份打开终端,输入:
wsl --set-default-version 2 - 特别提示!首次打开WSL,提示更新至最新版本,若反复拉取失败,可指定当前Powershell/CMD代理,再尝试
wsl --update --web-download,此时会尝试从github拉取WSL的最新版本并更新至本机。
二、 安装与配置 WSL
通过“手动导入”法,强制将 Linux 系统安装在 D 盘。
- 获取镜像灵魂:
-
从 官方链接 下载
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
- 落户 D 盘:
-
创建目标文件夹:
D:\WSL\Ubuntu2404。 -
将
install.tar.gz放入该文件夹。
- 执行导入:
PowerShell执行*(这个命令会创建一个容器,输入wsl --list --verbose可查看其发行版、WSL的运行版本)*:
wsl --import Ubuntu-24.04 D:\WSL\Ubuntu2404 D:\WSL\Ubuntu2404\install.tar.gz
- 初始化用户:
-
进入系统:
wsl -d Ubuntu-24.04。 -
创建用户:
adduser <用户名>并按提示设置密码。可自定义用户名。 -
提权:
usermod -aG sudo <用户名>。
- 锁定默认用户(在 Windows 侧执行):
PowerShell
wsl --manage Ubuntu-24.04 --set-default-user <用户名>
三、 安装与配置 Docker
确保容器镜像不挤占 C 盘空间。
-
常规安装:官网下载并安装 Docker Desktop,重启。
-
开启 WSL 协同:
-
Settings → Resources → WSL Integration。
-
勾选 Enable Ubuntu-24.04。
-
开启之后,在活跃的WSL系统上,输入
docker ps可直接调用宿主机的Docker,无需重复安装。
2026-02-20-11-57-06-image1866×826 61.6 KB
- 数据流放 (核心):
-
Settings → Resources → Advanced。
-
修改 Disk image location 为 D 盘路径(如
D:\Docker\data)。 -
Apply & Restart。
2026-02-20-11-58-41-image1994×852 84.4 KB
四、 后续可选准备 (精装修)
- 全局配置 (
.wslconfig):
- 微软官方推荐,直接使用WSL Settings配置WSL的各类选项即可。实测通过此工具配置,会自动生成
.wslconfig文件!当然手动创建的效果亦可。
-
Win+R后输入%UserProfile%,在打开的目录下创建.wslconfig,自定义以下内容以限制内存并开启镜像网络(mirrored配置可使WSL直接使用Windows系统代理,而无需额外配置。修改完毕后需完整重启WSL):[wsl2] memory=8GB networkingMode=mirrored autoMemoryReclaim=gradual
- Ubuntu 深度换源(Ubuntu 24.04及更新版本适用,此版本更新了换源逻辑。):
-
修改
/etc/apt/sources.list.d/ubuntu.sources,将官方域名替换为mirrors.aliyun.com(或是其他源,视个人喜好)。 -
执行
sudo apt update && sudo apt upgrade -y。
- VS Code 远程连接:
- Windows 端安装 WSL 扩展插件,直接在应用商店搜索,会安装全套组件(包括远程连接WSL,快速配置SSH等组件)。由此你可以自由地在VSCode读写Linux发行版内的任何文件,还有一个自带的终端。(我不想学Vim和nano了!)
image2662×356 73.7 KB
- 在 Ubuntu 终端输入
code .实现跨系统无缝开发(初次安装输入Code,会安装适用于VSCode的Server遥控组件。)。
- 环境备份(可选):
- 配置完成后执行
wsl --export Ubuntu-24.04 D:\Backup.tar,一劳永逸。之后可根据备份复制导入为新的WSL镜像,实现多系统多环境开发。
五、 笔者建议
这套方案适用于日常生活中,只有一台电脑的同学。同时可避免软件安装过多过乱,导致游戏帧数下降,办公过程卡顿等情况。
此方案可将生活与开发相分离。若是不想要当前的Linux系统了,在终端输入wsl --unregister <发行版名称>。实现内容清零。(似乎可直接在对应目录删除.vhdx文件即可?)
当想要玩游戏的时候,在终端输入wsl --shutdown,即可完全解放后台占用,让硬件高效服务于游戏。(当然,WSL开机也不启动啊!)
六、扩展教程1-理解配置设置
WSL 的设置主要分布在三个地方:全局配置-Windows侧 (.wslconfig)、发行版配置-Linux内部侧(wsl.conf) 以及 Windows 设置界面。
- 核心概念:两个配置文件的区别
在开始之前,必须分清这两个“长得很像”的文件:
| 文件名 | 作用范围 | 存放位置 | 主要用途 |
|---|---|---|---|
| .wslconfig | 全局 (影响所有 Linux 发行版) | C:\Users<用户名>.wslconfig | 限制内存、CPU、网络模式、内核设置 |
| wsl.conf | 局部 (仅影响当前发行版) | /etc/wsl.conf (在 Linux 内部) | 自动挂载设置、启动命令、默认用户 |
- 全局配置:.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
- 发行版配置: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) 讲起。
- 默认模式:NAT (Network Address Translation)
在默认状态下,WSL 2 运行在一个轻量级虚拟机中,拥有自己独立的虚拟网卡和私有 IP 地址池。
- 原理:Windows 充当了“路由器”。WSL 访问外网时,流量经过虚拟交换机进行地址转换(NAT)后再发往物理网络。
- 痛点:双向访问难:外部设备访问 WSL 需要做端口转发。
- IP 经常变:每次重启 WSL,其内部 IP 可能会变动。
- VPN 冲突:开启代理或 VPN 时,由于路由表冲突,WSL 经常断网。
- 进阶模式: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版本。
-
开启虚拟化:进入 BIOS,确保
AMD-V(AMD) 或VT-x(Intel) 已开启。
image998×716 28 KB -
开启 Windows 功能:
-
按下
Win + R,输入optionalfeatures。(或搜索Windows功能) -
勾选:适用于 Linux 的 Windows 子系统、虚拟机平台、容器、Hyper-V平台。
2026-02-20-11-54-46-image1258×1288 117 KB
-
重启电脑:使底层功能生效。
-
设置 WSL 默认版本:
- 管理员身份打开终端,输入:
wsl --set-default-version 2 - 特别提示!首次打开WSL,提示更新至最新版本,若反复拉取失败,可指定当前Powershell/CMD代理,再尝试
wsl --update --web-download,此时会尝试从github拉取WSL的最新版本并更新至本机。
二、 安装与配置 WSL
通过“手动导入”法,强制将 Linux 系统安装在 D 盘。
- 获取镜像灵魂:
-
从 官方链接 下载
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
- 落户 D 盘:
-
创建目标文件夹:
D:\WSL\Ubuntu2404。 -
将
install.tar.gz放入该文件夹。
- 执行导入:
PowerShell执行*(这个命令会创建一个容器,输入wsl --list --verbose可查看其发行版、WSL的运行版本)*:
wsl --import Ubuntu-24.04 D:\WSL\Ubuntu2404 D:\WSL\Ubuntu2404\install.tar.gz
- 初始化用户:
-
进入系统:
wsl -d Ubuntu-24.04。 -
创建用户:
adduser <用户名>并按提示设置密码。可自定义用户名。 -
提权:
usermod -aG sudo <用户名>。
- 锁定默认用户(在 Windows 侧执行):
PowerShell
wsl --manage Ubuntu-24.04 --set-default-user <用户名>
三、 安装与配置 Docker
确保容器镜像不挤占 C 盘空间。
-
常规安装:官网下载并安装 Docker Desktop,重启。
-
开启 WSL 协同:
-
Settings → Resources → WSL Integration。
-
勾选 Enable Ubuntu-24.04。
-
开启之后,在活跃的WSL系统上,输入
docker ps可直接调用宿主机的Docker,无需重复安装。
2026-02-20-11-57-06-image1866×826 61.6 KB
- 数据流放 (核心):
-
Settings → Resources → Advanced。
-
修改 Disk image location 为 D 盘路径(如
D:\Docker\data)。 -
Apply & Restart。
2026-02-20-11-58-41-image1994×852 84.4 KB
四、 后续可选准备 (精装修)
- 全局配置 (
.wslconfig):
- 微软官方推荐,直接使用WSL Settings配置WSL的各类选项即可。实测通过此工具配置,会自动生成
.wslconfig文件!当然手动创建的效果亦可。
-
Win+R后输入%UserProfile%,在打开的目录下创建.wslconfig,自定义以下内容以限制内存并开启镜像网络(mirrored配置可使WSL直接使用Windows系统代理,而无需额外配置。修改完毕后需完整重启WSL):[wsl2] memory=8GB networkingMode=mirrored autoMemoryReclaim=gradual
- Ubuntu 深度换源(Ubuntu 24.04及更新版本适用,此版本更新了换源逻辑。):
-
修改
/etc/apt/sources.list.d/ubuntu.sources,将官方域名替换为mirrors.aliyun.com(或是其他源,视个人喜好)。 -
执行
sudo apt update && sudo apt upgrade -y。
- VS Code 远程连接:
- Windows 端安装 WSL 扩展插件,直接在应用商店搜索,会安装全套组件(包括远程连接WSL,快速配置SSH等组件)。由此你可以自由地在VSCode读写Linux发行版内的任何文件,还有一个自带的终端。(我不想学Vim和nano了!)
image2662×356 73.7 KB
- 在 Ubuntu 终端输入
code .实现跨系统无缝开发(初次安装输入Code,会安装适用于VSCode的Server遥控组件。)。
- 环境备份(可选):
- 配置完成后执行
wsl --export Ubuntu-24.04 D:\Backup.tar,一劳永逸。之后可根据备份复制导入为新的WSL镜像,实现多系统多环境开发。
五、 笔者建议
这套方案适用于日常生活中,只有一台电脑的同学。同时可避免软件安装过多过乱,导致游戏帧数下降,办公过程卡顿等情况。
此方案可将生活与开发相分离。若是不想要当前的Linux系统了,在终端输入wsl --unregister <发行版名称>。实现内容清零。(似乎可直接在对应目录删除.vhdx文件即可?)
当想要玩游戏的时候,在终端输入wsl --shutdown,即可完全解放后台占用,让硬件高效服务于游戏。(当然,WSL开机也不启动啊!)
六、扩展教程1-理解配置设置
WSL 的设置主要分布在三个地方:全局配置-Windows侧 (.wslconfig)、发行版配置-Linux内部侧(wsl.conf) 以及 Windows 设置界面。
- 核心概念:两个配置文件的区别
在开始之前,必须分清这两个“长得很像”的文件:
| 文件名 | 作用范围 | 存放位置 | 主要用途 |
|---|---|---|---|
| .wslconfig | 全局 (影响所有 Linux 发行版) | C:\Users<用户名>.wslconfig | 限制内存、CPU、网络模式、内核设置 |
| wsl.conf | 局部 (仅影响当前发行版) | /etc/wsl.conf (在 Linux 内部) | 自动挂载设置、启动命令、默认用户 |
- 全局配置:.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
- 发行版配置: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) 讲起。
- 默认模式:NAT (Network Address Translation)
在默认状态下,WSL 2 运行在一个轻量级虚拟机中,拥有自己独立的虚拟网卡和私有 IP 地址池。
- 原理:Windows 充当了“路由器”。WSL 访问外网时,流量经过虚拟交换机进行地址转换(NAT)后再发往物理网络。
- 痛点:双向访问难:外部设备访问 WSL 需要做端口转发。
- IP 经常变:每次重启 WSL,其内部 IP 可能会变动。
- VPN 冲突:开启代理或 VPN 时,由于路由表冲突,WSL 经常断网。
- 进阶模式: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吧

