Lazy loaded image
运维管理
WSL 安装和配置
Words 1453Read Time 4 min
2026-2-1
2026-2-1
date
related_level
slug
windows_wsl_configure
type
Post
relate_date
summary
Windows 的 Linux 子系统安装配置和使用
status
Published
tags
虚拟化
Win
category
运维管理
last_updated
Feb 1, 2026 10:26 PM
是否已更新
orginal_page
是否推荐

WSL 安装

WSL 安装(以 Win 10 为例)
  • 前提条件
    • 需要加入 Windows 预览体验计划并安装 Windows 10 的预览版(OS 版本 20262 或更高版本)
    • 需使用管理员权限打开命令窗口
  • 执行 wsl --install 命令将执行以下操作:
    • 启用可选的 WSL 和虚拟机平台组件
    • 下载并安装最新 Linux 内核
    • 将 WSL 2 设置为默认值
    • 下载并安装 Linux 分发版(可能需要重启)
  • wsl --install -d <Distribution Name> 指定安装的发行版本
    • wsl --list --online 查看可用发行版本
手动安装 WSL(不推荐)
  • WSL2 需要 Win10 的特定版本以上
    • Windows 键 + R 调出运行,输入 winver 确定来检查 Windows 版本
  • 以管理员身份打开 PowerShell 并运行:
    • dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
      • 启用“适用于 Linux 的 Windows 子系统”可选功能
      • 只是安装 WSL 1 的话后续步骤可以都不管
    • dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
      • 启用“虚拟机平台”可选功能
      • 重新启动计算机,以完成 WSL 安装
  • 设置 WSL 默认版本
    • wsl --set-default-version 2
  • Microsoft Store 安装所选 Linux 分发版
    • ms-windows-store://collection?CollectionId=LinuxDistros
      • 在文件路径里输入即可打开 Microsoft Store
  • 或者命令行下载
    • Invoke-WebRequest -Uri https://aka.ms/wslubuntu2004 -OutFile Ubuntu.appx -UseBasicParsing
    • curl.exe -LR -o ubuntu-2004.Appx https://aka.ms/wslubuntu2204
      • curl 工具需要另外安装
  • 查看当前 WSL 安装
    • wsl --list --verbose
 

通过 .wslconfig 文件全局配置 wsl2

  • 也可以打开 C:\Program Files\WSL\wslsettings\wslsettings.exe 调用 WSL 图形设置页面
.wslconfig 文件位置
  • 需要先创建对应文件
    • touch C:\Users\%USERNAME%\.wslconfig
  • C:\Users\%USERNAME%\.wslconfig
配置 .wslconfig 文件
  • 以下配置均需要 Win 11 系统支持
启用镜像模式网络(与本地代理软件不兼容)
  • 将 WSL 更改为一个全新的网络架构,其目标是将 Windows 上的网络接口“镜像”到 Linux,以添加新的网络功能并提高兼容性
  • 目前启用此模式的好处如下
    • IPv6 支持
    • 使用本地主机地址 127.0.0.1 从 Linux 内部连接到 Windows 服务器。不支持 IPv6 本地主机地址 ::1
    • 改进了 VPN 的网络兼容性
    • 多播支持
    • 直接从局域网 (LAN) 连接到 WSL
  • 如果搭配 mihomo 等代理软件可能会出现网络配置初始化异常,此时请回退 nat 模式
自动代理
DNS 隧道
  • 让 WSL 使用虚拟化功能从 WSL 内部应答 DNS 请求,而不是通过网络数据包请求
整体配置如下
  • mirrored 模式如果搭配 mihomo 等代理软件可能会出现网络配置初始化异常,此时请回退 nat 模式
修改后需要关闭后重启 WSL
  • wsl --list --running
  • wsl --terminate <name>
    • 关闭特定 WSL 容器
  • wsl --shutdown
    • 关闭全部
WSL 网络初始化异常,回退到 VirtioProxy 模式,修复网络问题
  • 根本原因是Hyper-V的虚拟交换机组件有问题
    • 先尝试管理员启动 Powershell 执行启用虚拟交换机组件看是否能恢复
      • Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
  • 需要 WSL 系统已经开启 systemd 支持,用于后续 wsl-vpnkit 的自动启动
    • 参考下面的对应章节
  • 需要添加 wsl-vpnkit,获取最新版
在 wsl-vpnkit 对应路径打开 powershell,导入 wsl-vpnkit 到 WSL 容器
  • wsl --import wsl-vpnkit --version 2 $env:USERPROFILE\wsl-vpnkit wsl-vpnkit.tar.gz
    • 导入为 wsl-vpnkit 容器
  • wsl.exe -d wsl-vpnkit --cd /app wsl-vpnkit
    • 启动 wsl-vpnkit 容器
此时再启动默认的 WSL Ubuntu 容器,测试网络是否正常
  • wsl ping 1.1.1.1
  • wsl ping www.baidu.com
    • dns 解析正常
配置 WSL Ubuntu 容器自动启动 wsl-vpnkit
  • wsl -d Ubuntu
  • cp /mnt/e/wsl-vpnkit.tar.gz /opt/vpnkit/wsl-vpnkit.tar.gz
    • 可以不用下载直接复制本地文件
  • 不要删除 wsl-vpnkit 容器,wsl-vpnkit 服务依赖于 wsl-vpnkit 容器
    • wsl --list --verbose
 

WSL 容器开启 systemd 支持

wsl.config 文件位置
  • /etc/wsl.conf
    • 容器内部
  • \\wsl$\<distro-name>\etc\wsl.conf
    • windows 通过网络文件夹直接访问
配置 wsl.config 文件
开启 systemd 支持
wsl.config 样例文件
修改后需要重启 wsl
  • wsl --shutdown
  • wsl --list --running
确认是否开启
  • wsl -d <distro-name> -e /bin/sh
    • systemctl list-unit-files --type=service
 

WSL 系统配置 DNS

参考资料
  • 或者直接配置 .wslconfig 文件启用 dnsTunneling=true
配置 wsl.config 文件
禁止自动生成 hosts 文件和 resolv.conf 文件
取消现有的 resolv.conf 符号链接并创建新的 resolv.conf
  • sudo unlink /etc/resolv.conf
sudo vim /etc/resolv.conf
  • sudo chattr -f +i /etc/resolv.conf
    • 禁止修改,否则重启后还是会变更
  • systemctl status systemd-resolved
上一篇
Prometheus 性能调优:高基数问题
下一篇
helm drift 排查

Comments
Loading...