引言

很多工具只提供了 UNIX 家族的操作系统的支持,而且很多公司的开发环境是 Linux 服务器。很久以前,想要在 Windows PC 上用 GNU/Linux 只有两个选项:虚拟机和双系统。 两者在跟 Windows 交互时需要比较麻烦的环境配置。YYYY 年开始,我们有了新的选项: 微软开发了 WSL,可以在 Windows 上直接启动 Linux,这对开发带来了极大的便利。

本文以 Arch Linux 为例,介绍 WSL 的安装和配置。

WSL 是什么?

WSL2 采用了类似于虚拟机的方案。

安装 Arch WSL

参见文档

基本配置

我们使用 WSL2,因此需要进行一些额外的配置,才能丝滑地使用网络。

WSL2 的配置分为两个部分:Windows 系统上的 ~/.wslconfig 和 WSL 中的 /etc/wsl.conf, 我的配置如下:

首先是 Windows 中的 ~/.wslconfig,内容如下:

[wsl2]
networkingMode=mirrored   (1)
dnsTunneling=true
firewall=false
autoProxy=true            (2)
guiApplications=true
memory=56GB

[experimental]
autoMemoryReclaim=gradual (3)
sparseVhd=true            (4)
1启用“mirrored”网络模式,将 Windows 上的网络接口“镜像”到 Linux 中
2让 WSL 使用 Windows 的 HTTP 代理信息
3TODO
4TODO

然后是 WSL 中的 /etc/wsl.conf,内容如下:

[automount]
enabled = true
options = "metadata"
mountFsTab = true

[boot]
systemd = true (1)

[user]
default = ${YOUR_USER_NAME} (2)
1启用 systemd
2设置默认用户

图形界面

首先按照官网 的步骤升级 Windows 和 WSL,然后安装一个 GUI 工具(比如,xcalc)试试看,如果能正常显示, 那么就成功了,否则可以按照这里 的方式尝试修复。

代理配置

很多 App 都会吃这几个环境变量:http_proxyhttps_proxyall_proxy (区分大小写)。如果你在 Windows 上配置了代理软件,那么在 WSL 中,只需要:

export http_proxy="http://127.0.0.1:${PROXY_LISTEN_PORT}"

就可以了

互联网中部分资料会从 /etc/resolv.conf 中获取 IP 地址,这种方式已经过时了

WSL 网络架构

其他注意事项

需要注意的是,WSL2 跟 Windows 的文件系统交互是使用网络的,这可能会有一定的性能损失。