本文把几篇教程整理成一份偏命令速查的版本,适合 Windows 10/11 安装 WSL、查看运行状态、验证环境,以及配置登录后自动拉起 WSL。
示例发行版统一写成 Ubuntu。如果你的发行版叫 Ubuntu-22.04、Ubuntu-24.04 或 Debian,把命令里的 Ubuntu 替换成自己的名称即可。
先用管理员身份打开 PowerShell。

powershellwsl --install
安装完成后按提示重启电脑。重启后第一次打开 Ubuntu,会要求创建 Linux 用户名和密码。
powershellwsl --list --online
也可以写成:
powershellwsl -l -o
powershellwsl --install -d Ubuntu
示例:
powershellwsl --install -d Ubuntu-24.04 wsl --install -d Debian
如果 wsl --install 报错,可先手动启用 Windows 功能,再重启:
powershelldism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
重启后设置默认使用 WSL 2:
powershellwsl --set-default-version 2
更新 WSL:
powershellwsl --update
进入默认发行版:
powershellwsl
进入指定发行版:
powershellwsl -d Ubuntu
以 root 用户进入:
powershellwsl -d Ubuntu -u root
设置默认发行版:
powershellwsl --set-default Ubuntu
把某个发行版切换到 WSL 2:
powershellwsl --set-version Ubuntu 2
查看已安装发行版、运行状态和 WSL 版本:
powershellwsl -l -v

查看当前 WSL 基本状态:
powershellwsl --status
查看 WSL 客户端版本:
powershellwsl --version
查看正在运行的发行版:
powershellwsl --list --running
关闭所有 WSL 发行版:
powershellwsl --shutdown
只关闭某个发行版:
powershellwsl --terminate Ubuntu
进入 WSL 后执行:
bashcat /etc/os-release
uname -a
whoami
pwd
验证 apt 可用:
bashsudo apt update
验证网络:
bashcurl -I https://www.microsoft.com
验证能访问 Windows 磁盘:
bashls /mnt/c
从 WSL 打开当前目录的 Windows 文件资源管理器:
bashexplorer.exe .
更新 WSL:
powershellwsl --update
更新 Ubuntu 软件包:
bashsudo apt update sudo apt upgrade -y
导出备份:
powershellwsl --export Ubuntu D:\backup\ubuntu.tar
从备份导入:
powershellwsl --import Ubuntu D:\WSL\Ubuntu D:\backup\ubuntu.tar --version 2
注销并删除某个发行版。执行前务必确认已备份:
powershellwsl --unregister Ubuntu
这个方案简单,适合只想在登录 Windows 后自动启动 WSL 的情况。
按 Win + R,输入:
textshell:startup

在打开的启动文件夹里新建文件:
textstart-wsl.vbs
写入下面内容:
vbscriptSet shell = CreateObject("WScript.Shell") shell.Run "wsl.exe -d Ubuntu -e sh -lc ""nohup sleep infinity >/tmp/wsl-keepalive.log 2>&1 &""", 0, False

说明:
0 表示隐藏窗口。False 表示脚本不等待 WSL 命令结束。sleep infinity 是一个轻量保活进程,让 WSL 不会刚启动就退出。Ubuntu,替换 -d Ubuntu。验证:
powershellwsl -l -v
如果看到 Ubuntu 的 STATE 是 Running,说明自启生效。
这个方案比启动文件夹更可控,适合需要长期运行 Docker、SSH、数据库、frp、脚本服务等场景。
在 PowerShell 中执行:
powershell$Action = New-ScheduledTaskAction -Execute "wsl.exe" -Argument "-d Ubuntu -e sh -lc ""nohup sleep infinity >/tmp/wsl-keepalive.log 2>&1 &""" $Trigger = New-ScheduledTaskTrigger -AtLogOn Register-ScheduledTask -TaskName "WSL Ubuntu Keepalive" -Action $Action -Trigger $Trigger -Description "Start Ubuntu WSL on user logon" -Force
立即测试任务:
powershellStart-ScheduledTask -TaskName "WSL Ubuntu Keepalive" wsl -l -v
删除任务:
powershellUnregister-ScheduledTask -TaskName "WSL Ubuntu Keepalive" -Confirm:$false
如果你想让它开机但不登录也运行,需要在“任务计划程序”图形界面里把触发器改成“启动时”,并配置用户凭据。普通个人电脑一般用“登录时”就够了。
如果你的 WSL 版本支持 systemd,推荐先启用 systemd,再把需要长期运行的进程做成服务。
检查 WSL 版本:
powershellwsl --version
进入 WSL,编辑 /etc/wsl.conf:
bashsudo nano /etc/wsl.conf
写入:
ini[boot]
systemd=true
回到 PowerShell 重启 WSL:
powershellwsl --shutdown wsl -d Ubuntu
验证 systemd:
bashsystemctl is-system-running
systemctl list-unit-files --type=service
创建一个 keepalive 服务:
bashsudo tee /etc/systemd/system/wsl-keepalive.service >/dev/null <<'EOF'
[Unit]
Description=Keep WSL instance alive
[Service]
Type=simple
ExecStart=/usr/bin/tail -f /dev/null
Restart=always
[Install]
WantedBy=multi-user.target
EOF
启用并启动:
bashsudo systemctl daemon-reload
sudo systemctl enable --now wsl-keepalive.service
查看服务状态:
bashsystemctl status wsl-keepalive.service --no-pager
停止并禁用:
bashsudo systemctl disable --now wsl-keepalive.service
注意:systemd 服务只能在 WSL 发行版已经启动后生效。要让 Windows 登录后自动拉起 WSL,仍然需要配合“启动文件夹 VBS”或“任务计划”。
如果你要保活的不是 WSL 本身,而是某个具体服务,建议不要只依赖 sleep infinity,而是把真实服务写成 systemd 服务。
例如启动 SSH:
bashsudo apt install -y openssh-server
sudo systemctl enable --now ssh
systemctl status ssh --no-pager
例如启动 Docker。前提是你已安装 Docker Engine 或 Docker Desktop WSL 集成:
bashsudo systemctl enable --now docker
systemctl status docker --no-pager
这样更容易查看日志、重启服务和排错:
bashjournalctl -u ssh -n 100 --no-pager sudo systemctl restart ssh
wsl --install 报虚拟化相关错误:
powershelldism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart wsl --update
然后检查 BIOS/UEFI 是否启用了虚拟化。
配置 /etc/wsl.conf 后没生效:
powershellwsl --shutdown
等待几秒后重新进入 WSL。Microsoft 文档提到,WSL 配置变更需要等发行版完全停止后再重新启动才会应用。
DNS 或网络异常时可先重启 WSL:
powershellwsl --shutdown wsl
确认发行版名:
powershellwsl -l -v
确认 WSL 内部保活进程:
bashps -ef | grep -E "sleep infinity|tail -f /dev/null" | grep -v grep
本文作者:口水
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!