【WSL】安装并配置适用于Linux的Windows子系统(WSL)

【WSL】安装并配置适用于Linux的Windows子系统(WSL)

安装并配置适用于Linux 的Windows子系统(WSL)


引言

适用于 Linux 的 Windows 子系统(WSL)是 Windows 的一项功能,可用于在 Windows 计算机上运行 Linux 环境,而无需单独的虚拟机或双重启动。 WSL 旨在为想要同时使用 Windows 和 Linux 的开发人员提供无缝高效的体验。


一、安装WSL

右键单击并选择“以管理员身份运行”,在管理员模式下打开 PowerShell,输入 wsl --install 命令,然后重新启动计算机。

wsl --install 

完成后在PowerShell下运行如下命令可以查看已经安装的Linux发行版:

wsl --list --verbose 
在这里插入图片描述

但是,不出意外的话就要出意外了。
国内环境下,由于 GitHub 连接不稳定,应该是无法直接安装 Linux 系统。运行上述代码时会出现如下错误:

无法从“https://raw.githubusercontent.com/microsoft/WSL/master/distributions/DistributionInfo.json”提取列表分发。操作超时。
错误代码: Wsl/InstallDistro/WININET_E_TIMEOUT

出现上述问题则需要手动安装 Linux 发行版。


二、手动下载并安装Ubuntu(或其他发行版)

2.1 从官方镜像站下载 WSL 发行版包

访问 Ubuntu 资源官网:https://releases.ubuntu.com/
这里选择下载 Ubuntu 24.04 LTS

在这里插入图片描述


点进去之后找到 WSL image 并下载:

在这里插入图片描述

2.2 手动导入并安装

在 WSL 中导入并安装 Linux 发行版的命令语法如下:

wsl --import <发行版名称><安装目录><tar 或 wsl 包路径>[选项]

比如我在 PowerShell 中运行如下命令进行安装:

wsl --import Ubuntu-24.04 "D:\ProgramData\WSL\Ubuntu-24.04""C:\Users\wyq15\Downloads\ubuntu-24.04.3-wsl-amd64.wsl" --version 2

2.3 验证安装

完成后在 PowerShell 下运行如下命令可以查看已经安装完毕:

wsl --list --verbose 
在这里插入图片描述

三、给WSL更换清华源(可选)

在 WSL 中安装的 Ubuntu 版本在使用 apt 安装软件时速度较慢,因此更换国内源,这里采取自动更换的方式,确保更换无误。

备份原始配置:

sudocp /etc/apt/sources.list /etc/apt/sources.list.bak 
如果换源后出问题,可随时恢复:

更换源代码如下:

UBUNTU_CODENAME=$(lsb_release -cs)echo"deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ $UBUNTU_CODENAME main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ $UBUNTU_CODENAME-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ $UBUNTU_CODENAME-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ $UBUNTU_CODENAME-security main restricted universe multiverse"|sudotee /etc/apt/sources.list 

更新软件包索引:

sudoapt clean # 清理旧缓存sudoapt update # 从新源拉取软件列表

四、使用Xshell连接WSL(可选)

在正常使用时 PowerShell 感觉用的并不习惯,因此采用 Xshell 通过 SSH 远程控制。这里需要下载一些搭配使用的软件。

4.1 下载并安装 Xshell

官网免费授权版本:https://www.xshell.com/zh/free-for-home-school/

在这里插入图片描述


直接下载并安装就行了,这里就不过多赘述了。

4.2 在 WSL 中安装并配置 OpenSSH Server

  • 启动 WSL
wsl -d Ubuntu-24.04 
  • 更新包列表并安装 openssh-server
sudoapt update sudoaptinstall openssh-server -y 

由于后续要编辑配置,我习惯使用 vim ,因此这里也装个 vim

sudoaptinstallvim -y 
在这里插入图片描述
  • 修改 SSH 配置(关键!关键!关键!
    默认 SSH 端口是 22,但 Windows 可能已占用(如 Windows 自带的 OpenSSH 服务)。建议改为非冲突端口,例如 2222
sudovim /etc/ssh/sshd_config 

找到 #Port 22,修改为:

Port 2222
在这里插入图片描述

同时确保以下选项启用:

PermitRootLogin yes# 如果你想用 root 登录 PasswordAuthentication yes# 允许密码登录(Xshell 需要)
在这里插入图片描述


在这里插入图片描述


修改完后保存::wq

  • 启动 SSH 服务
sudo systemctl restart ssh
在这里插入图片描述
  • 设置开机自启(可选)
sudo systemctl enablessh
在这里插入图片描述
  • 设置root用户密码
sudopasswd
在这里插入图片描述

4.3 在Xshell中配置连接


连接成功

在这里插入图片描述

五、WSL常用命令

当然可以!以下是一份 WSL(Windows Subsystem for Linux)常用命令速查清单,涵盖 管理发行版、启动/关闭、导入导出、版本切换、网络配置 等高频操作,适用于 WSL 1 和 WSL 2(以 PowerShell 或 CMD 为主)。

5.1 基础信息查看

命令说明
wsl -l列出已安装的发行版(简略)
wsl -l -v列出所有发行版 + 状态 + WSL 版本(最常用✅)
wsl --status查看 WSL 整体状态(内核版本、默认发行版等)
wsl -d <名称>启动指定发行版(如 wsl -d Ubuntu-24.04
wsl启动默认发行版

5.2 动与关闭

命令说明
wsl --shutdown立即关闭所有 WSL 虚拟机(释放内存/CPU,推荐日常使用✅)
wsl --terminate <发行版名>强制终止某个发行版(如 wsl --terminate Ubuntu-24.04
wsl -d <名称> -u <用户名>以指定用户身份启动(如 wsl -d Ubuntu -u alice

5.3 安装与卸载发行版

命令说明
wsl --install安装默认发行版(Ubuntu)和 WSL 2(需管理员权限)
wsl --install -d <发行版名>安装指定发行版(如 wsl --install -d Debian
wsl --unregister <发行版名>彻底删除该发行版及其所有数据(不可逆⚠️)
wsl --set-default <发行版名>设置默认启动的发行版
💡 可用发行版列表:
Ubuntu, Debian, KaliLinux, openSUSE-Leap-15.5, SLES-15-SP5 等(需先在 Microsoft Store 安装或手动导入)

5.4 导入与导出(迁移/备份)

命令说明
wsl --export <名称> <备份路径.tar>导出发行版为 tar 包(用于备份或迁移)
例:wsl --export Ubuntu D:\backup\ubuntu.tar
wsl --import <新名称> <安装目录> <tar路径> [--version 2]从 tar 包导入新发行版
例:wsl --import MyUbuntu D:\WSL\MyUbuntu D:\backup\ubuntu.tar --version 2
这是将 WSL 移到 D 盘的标准方法!

5.5 版本管理(WSL 1 ↔ WSL 2)

命令说明
wsl --set-version <名称> 2将发行版升级到 WSL 2(推荐✅)
wsl --set-version <名称> 1降级到 WSL 1(兼容性需求)
wsl --default-version 2设置新安装发行版默认使用 WSL 2
💡 WSL 2 性能更好,但需要 Windows 10 2004+ 或 Win11。

5.6 网络与 SSH(连接 Xshell 等)

操作说明
在 WSL 中安装 SSH:
sudo apt install openssh-server
启用 SSH 服务
修改端口:
sudo nano /etc/ssh/sshd_configPort 2222
避免与 Windows 冲突
启动 SSH:
sudo service ssh start
手动启动
Windows 防火墙放行 2222 端口否则 Xshell 无法连接
Xshell 连接地址:
主机:127.0.0.1,端口:2222
本地回环连接

5.7 文件系统互访

路径说明
Windows → WSL在 WSL 中访问:/mnt/c/, /mnt/d/
WSL → Windows在 Windows 中访问:
\\wsl$\<发行版名>\(资源管理器地址栏输入)
例:\\wsl$\Ubuntu-24.04\home
✅ 推荐用 \\wsl$ 方式在 Windows 中直接操作 Linux 文件!

5.8 高级配置

1. 全局配置文件(控制内存、swap、内核等)

  • 路径:%USERPROFILE%\.wslconfig
  • 修改后执行:wsl --shutdown 生效

示例:

[wsl2] memory=4GB processors=2 swap=2GB swapFile=D:/WSL/swap.vhdx localhostForwarding=true 

2. 单个发行版配置

  • 路径(在 WSL 内):/etc/wsl.conf

示例:

[user] default = alice [automount] enabled = true options = "metadata,umask=22,fmask=11" 

5.9 清理与优化

命令说明
wsl --update更新 WSL 内核(需联网)
wsl --update rollback回滚到上一个内核版本
手动压缩 vhdx:
diskpartselect vdisk file="D:\WSL\ext4.vhdx"attach vdisk readonlycompact vdiskdetach vdisk
减小虚拟硬盘占用

5.10 实用技巧

  • 快速进入 WSL 目录:在 Windows 资源管理器地址栏输入 \\wsl$
  • 默认用户不是 root?在 /etc/wsl.conf 中设置 [user]\ndefault = yourname
  • C 盘满了?用 wsl --export + wsl --import 迁移到 D 盘
  • 忘记密码?以 root 启动:wsl -u root,然后 passwd username 重置

5.11 总结:最常用 5 条命令

wsl -l -v # 查看所有发行版状态 wsl --shutdown # 关闭所有 WSL(日常必用) wsl --export Ubuntu backup.tar # 备份 wsl --import NewUbuntu D:\WSL\NewUbuntu backup.tar --version 2 # 迁移 wsl --set-version Ubuntu 2 # 升级到 WSL 2

Read more

【OpenClaw从入门到精通】第10篇:OpenClaw生产环境部署全攻略:性能优化+安全加固+监控运维(2026实测版)

【OpenClaw从入门到精通】第10篇:OpenClaw生产环境部署全攻略:性能优化+安全加固+监控运维(2026实测版)

摘要:本文聚焦OpenClaw从测试环境走向生产环境的核心痛点,围绕“性能优化、安全加固、监控运维”三大维度展开实操讲解。先明确生产环境硬件/系统选型标准,再通过硬件层资源管控、模型调度策略、缓存优化等手段提升响应速度(实测响应效率提升50%+);接着从网络、权限、数据三层构建安全防护体系,集成火山引擎安全方案拦截高危操作;最后落地TenacitOS可视化监控与Prometheus告警体系,配套完整故障排查清单和虚拟实战案例。全文所有配置、代码均经实测验证,兼顾新手入门实操性和进阶读者的生产级部署需求,帮助开发者真正实现OpenClaw从“能用”到“放心用”的跨越。 优质专栏欢迎订阅! 【DeepSeek深度应用】【Python高阶开发:AI自动化与数据工程实战】【YOLOv11工业级实战】 【机器视觉:C# + HALCON】【大模型微调实战:平民级微调技术全解】 【人工智能之深度学习】【AI 赋能:Python 人工智能应用实战】【数字孪生与仿真技术实战指南】 【AI工程化落地与YOLOv8/v9实战】【C#工业上位机高级应用:高并发通信+性能优化】 【Java生产级避坑指南:

By Ne0inhk
ARM Linux 驱动开发篇--- Linux 并发与竞争实验(互斥体实现 LED 设备互斥访问)--- Ubuntu20.04互斥体实验

ARM Linux 驱动开发篇--- Linux 并发与竞争实验(互斥体实现 LED 设备互斥访问)--- Ubuntu20.04互斥体实验

🎬 渡水无言:个人主页渡水无言 ❄专栏传送门: 《linux专栏》《嵌入式linux驱动开发》《linux系统移植专栏》 ❄专栏传送门: 《freertos专栏》《STM32 HAL库专栏》 ⭐️流水不争先,争的是滔滔不绝  📚博主简介:第二十届中国研究生电子设计竞赛全国二等奖 |国家奖学金 | 省级三好学生 | 省级优秀毕业生获得者 | ZEEKLOG新星杯TOP18 | 半导纵横专栏博主 | 211在读研究生 在这里主要分享自己学习的linux嵌入式领域知识;有分享错误或者不足的地方欢迎大佬指导,也欢迎各位大佬互相三连 目录 前言  一、实验基础说明 1.1、互斥体简介 1.2 本次实验设计思路 二、硬件原理分析(看过之前博客的可以忽略) 三、实验程序编写 3.1 互斥体 LED 驱动代码(mutex.c) 3.2.1、设备结构体定义(28-39

By Ne0inhk
Flutter for OpenHarmony:swagger_dart_code_generator 接口代码自动化生成的救星(OpenAPI/Swagger) 深度解析与鸿蒙适配指南

Flutter for OpenHarmony:swagger_dart_code_generator 接口代码自动化生成的救星(OpenAPI/Swagger) 深度解析与鸿蒙适配指南

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 后端工程师扔给你一个 Swagger (OpenAPI) 文档地址,你会怎么做? 1. 对着文档,手写 Dart Model 类(容易写错字段类型)。 2. 手写 Retrofit/Dio 的 API 接口定义(容易拼错 URL)。 3. 当后端修改了字段名,你对着报错修半天。 这是重复劳动的地狱。 swagger_dart_code_generator 可以将 Swagger (JSON/YAML) 文件直接转换为高质量的 Dart 代码,包括: * Model 类:支持 json_serializable,带 fromJson/

By Ne0inhk
Linux 开发别再卡壳!makefile/git/gdb 全流程实操 + 作业解析,新手看完直接用----《Hello Linux!》(5)

Linux 开发别再卡壳!makefile/git/gdb 全流程实操 + 作业解析,新手看完直接用----《Hello Linux!》(5)

文章目录 * 前言 * make/makefile * 文件的三个时间 * Linux第一个小程序-进度条 * 回车和换行 * 缓冲区 * 程序的代码展示 * git指令 * 关于gitee * Linux调试器-gdb使用 * 作业部分 前言 做 Linux 开发时,你是不是也遇到过这些 “卡脖子” 时刻?写 makefile 时,明明语法没错却报错,最后发现是依赖方法行没加 Tab;想提交代码到 gitee,记不清 git add/commit/push 的 “三板斧”,还得反复搜教程;用 gdb 调试程序,输了命令没反应,才想起编译时没加-g生成 debug 版本;甚至连写个进度条,都搞不懂\r和\n的区别,导致进度条乱跳…… 其实这些问题,

By Ne0inhk