ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

一键安装WSL2:Windows下Linux开发环境配置全攻略

一键安装WSL2:Windows下Linux开发环境配置全攻略 以前我给别人推荐在Windows上做Linux开发第一反应都是装虚拟机第二反应是装双系统。虚拟机开个IDE卡得让人烦躁双系统换个环境还得重启来回折腾几次就懒得用了。直到Windows 10 2004之后WSL2成熟、wsl --install这条命令出现我才真正把在Windows上做Linux开发当成日常。现在新电脑到手从打开PowerShell到进入一个能跑Docker、能连VS Code的Ubuntu环境全程不超过五分钟大部分时间是在等下载。这篇文章是我这套Windows命令行一键安装、配置WSL完整流程的落地记录包括前置检查、一条命令安装、首次配置、常见翻车场景的排查链路以及把WSL接进VS Code和Docker的经验。不管是刚接触命令行的小白还是想从虚拟机迁移过来的老手都可以直接照着操作。1. 放弃虚拟机与双系统WSL2解决了我最痛的三件事1.1 我的使用场景与WSL的定位我是做后端开发的日常离不开Linux环境Shell脚本、grep日志、Docker容器、Redis之类的中间件很多操作在Windows原生的CMD或PowerShell里做就是别扭。以前公司发的Windows笔记本我一般装一个VMware跑Ubuntu后来换了新电脑才痛下决心把WSL2用起来。WSLWindows Subsystem for Linux是Windows提供的一个兼容层能在不装虚拟机软件、不切系统的情况下运行真实的Linux发行版。WSL2其实是一个轻量级虚拟机由Windows内置的虚拟机平台托管但因为内核和启动流程都是微软深度集成的所以启动速度接近原生进程和传统VMware完全是两个体验。对普通开发者来说WSL的价值可以概括成三句话在Windows里拥有一个完整的Linux终端不用重启就能用apt安装Linux软件文件系统、端口、剪贴板都和Windows互通。这篇文章要讲的就是怎样用命令行把它一键装好、配好。1.2 WSL2对比虚拟机、双系统的真实体验很多人在虚拟机、双系统、WSL三者之间纠结我三样都用过直接说结论如果你的需求是偶尔用Linux跑命令、做开发WSL2是所有方案里边际成本最低的。启动速度虚拟机要先启动整个系统双系统要重启切换WSL2登录一个新的Ubuntu会话基本是秒开。资源占用VMware给虚拟机分2GB内存这台机器就真的少2GBWSL2用的是动态内存按需分配空闲时会把内存还给Windows。文件互通虚拟机里访问Windows文件要走共享文件夹路径绕WSL2里直接cd /mnt/c就是C盘Windows里也能用\\wsl$打开Linux文件系统双向都是原生体验。网络WSL2默认通过NAT网络转发本机访问WSL里的服务比如localhost:8080可以直接通不需要手动配置端口映射反过来WSL访问Windows的网络也没障碍。双系统适合需要完整硬件性能的场景比如跑大型GPU计算、需要独立显卡直通虚拟机适合需要完整图形界面、并且要长期挂机跑服务的场景。但如果你只是要一个趁手的Linux开发环境WSL2是效率最高的选择。1.3 一条命令安装为什么是体验分水岭在wsl --install出现之前装WSL是个劝退过程要手动去启用或关闭Windows功能里勾选Windows Subsystem for Linux还要勾选虚拟机平台然后重启再去下载一个内核更新包最后还要去商店挑发行版。每一步看似不难组合起来就容易出问题光是在功能勾选后重启这一步就能卡住一批人。wsl --install把这几步全包了检查并启用所需的Windows功能下载WSL2内核下载并安装默认发行版整个过程只需要在管理员PowerShell里执行一条命令。这条命令对新手最大的意义是减少了我是不是少做了一步的自我怀疑对老手最大的意义则是可以脚本化、批量部署。我后来给同事配开发机全都是贴上这条命令跑完重启就完事。2. 装之前先自查系统版本、虚拟化开关与发行版选型2.1 系统版本检查先确认你的Windows够不够新很多人执行wsl --install报错第一反应是命令打错了其实大概率是系统版本太老。WSL2需要Windows 10 2004及以上版本Windows 11全系支持最早的WSL1对系统要求更低但体验差不少现在新装系统没必要回头用WSL1。检查版本最简单的方式是WinR输入winver弹窗里会显示版本信息。如果你看到版本号低于2004先把Windows Update跑了再继续。另外我建议尽量保持在较新的Windows 11版本上使用因为后续版本的WSL还加入了镜像网络模式、WSLg图形支持这些实用特性这些都要依赖系统更新。管理员PowerShell里还可以跑一条命令看当前的虚拟化状态bcdedit /enum | findstr hypervisorlaunchtype如果输出是Auto或Off说明虚拟化层可以被WSL2使用如果显示hypervisorlaunchtype缺失或异常可能是Hyper-V被手动关过重启后一般能恢复。2.2 BIOS虚拟化与系统功能开关这一步是很多卡在启动时案例的根源。WSL2本质是个虚拟机必须依赖CPU的硬件虚拟化技术Intel VT-x或AMD-V。虽然WSL安装过程会自动启用系统功能但BIOS里的虚拟化开关它管不了。检查方法很简单打开任务管理器切到性能选项卡看CPU一栏右下角有没有虚拟化: 已启用。如果显示已禁用需要重启进入BIOS通常是开机按Del或F2在CPU配置或虚拟化相关菜单里找到Intel Virtualization Technology / SVM Mode设为Enabled保存退出。系统自带的虚拟化平台功能如果没启用安装脚本会自动启用并提示你重启。如果你想手动确认也可以用管理员身份执行dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart跑完之后手动重启一次再继续。这个命令在wsl --install失败、或者你想修复系统功能状态时非常有用。2.3 WSL1与WSL2的差异默认版本怎么定WSL2比WSL1快在文件系统和内核兼容性上。WSL1是通过系统调用翻译层把Linux调用转成Windows调用兼容性有限有些软件会报奇怪错误WSL2则是一个包含真实Linux内核的轻量虚拟机能和标准Linux环境完全兼容Docker、systemd都能跑。唯一的代价是WSL2的文件IO在跨Windows文件系统/mnt/c时会有性能损耗因为要经过9P协议转换。这个损耗在Linux里频繁读写Windows目录时明显比如在WSL里直接操作Windows桌面上的Node项目npm install会明显变慢。解决方案是项目文件放在Linux文件系统内部需要用Windows编辑器打开时再通过\\wsl$访问。这不是WSL2的缺陷用的时候注意方向就行。安装时我推荐显式把默认版本设为2wsl --set-default-version 2这样后续安装的所有发行版都会默认用WSL2避免出现装完了发现是WSL1的尴尬。2.4 发行版选型默认Ubuntu还是其他选择wsl --install不接参数时默认装Ubuntu这个默认值其实很合理。Ubuntu在WSL社区的用户基数最大遇到问题随便一搜都有答案apt软件源覆盖面也广。如果你有特定诉求可以先用下面的命令查看当前支持在线安装的发行版列表wsl --list --online常见的还有Debian更精简、适合当服务器环境练习、Kali Linux做安全测试、openSUSE等。我的建议是没有特殊需求就老老实实用Ubuntu选LTS版本比如Ubuntu 24.04 LTS别追着非LTS版本跑开发环境稳定最重要。指定发行版安装的方式是在wsl --install后加-d参数wsl --install -d Ubuntu-24.04如果你不想装图形界面也不想要默认发行版只想先把WSL内核准备好可以用wsl --install --no-distribution之后再按需添加发行版。这个选项在做批量初始化的脚本里很实用。3. 核心操作wsl --install从执行到首次登录的完整记录3.1 用管理员PowerShell执行安装命令右键开始菜单选择终端(管理员)或Windows PowerShell(管理员)然后执行wsl --install -d Ubuntu-24.04注意这里一定要用管理员权限打开否则后面启用Windows功能那一步会因为没有权限而报错。另外不要把命令里的-d Ubuntu-24.04看死具体名称先跑wsl --list --online确认一下因为不同时期的镜像列表里的名称可能会有小差异。第一次执行这条命令时输出通常会经过几个阶段先是提示正在启用所需的Windows功能然后提示下载WSL内核最后是下载并安装发行版。整个过程可能持续几分钟到十几分钟取决于你的网速和微软服务器的连接情况。中间如果系统提示需要重启按提示重启后重新打开终端接着执行同一条命令安装流程会继续而不是从头开始。3.2 这条命令背后自动完成的几件事我拆解一下这条命令实际干了什么你就知道为什么它能取代过去手动配置那一大套启用适用于Linux的Windows子系统和虚拟机平台两个Windows功能。这一步在过去是最容易漏的。下载并安装WSL2内核更新包。老流程需要去微软官网手动下载MSI文件。从微软商店服务器拉取指定的发行版默认Ubuntu并注册到WSL管理框架中。自动把默认WSL版本设为2在支持的系统上。整个流程看起来是一键但实际还是分阶段下载的。所以如果中途网络断了不要慌修复网络后重新执行命令即可已经完成的部分不会重复下载。安装完成后可以用两个命令验证WSL本体状态wsl --version wsl -l -vwsl --version输出的是WSL运行时版本信息能看到内核版本号wsl -l -v列出已安装的发行版以及每个发行版用的是WSL1还是WSL2。如果wsl --version提示命令不存在说明你的系统版本较旧需要执行wsl --update更新内核或者手动安装内核更新包后再继续。3.3 首次启动Ubuntu用户名、密码与sudo权限安装完成后你可以在管理员终端里直接执行wsl或wsl -d Ubuntu-24.04进入Linux环境。首次启动会提示你为Ubuntu创建一个UNIX用户名和密码。关于用户名有几个实际问题要先说清楚这个用户名是进入Linux环境后的登录名和你Windows用户名没有必须的对应关系可以随意取但它会成为你的家目录名称/home/用户名所以建议一次取好比如我用的就是姓名的拼音缩写简洁好记。密码在Linux下输入时屏幕不会显示任何字符这不是键盘坏了是终端安全策略输完直接回车即可。创建完用户后这个用户默认具备sudo权限需要输入密码的场景会出现[sudo] password for xxx:提示。我建议第一时间验证一下sudo是否生效sudo apt update如果能看到软件源索引刷新的输出说明用户和sudo都没问题。如果提示用户不在sudoers里可以重启WSL在内置的root用户下修复wsl -d Ubuntu-24.04 -u root usermod -aG sudo 你的用户名这个-u root参数在忘记Linux密码时也是救命稻草Windows侧可以直接指定用户身份进入发行版。3.4 安装后的基础健康检查进入系统后不要急着装一堆工具先把基础状态确认一遍。我每次配新环境都会跑这几条cat /etc/os-release uname -a df -h / free -hcat /etc/os-release确认系统版本和代号uname -a看内核版本df -h /看根分区剩余空间free -h看内存分配情况。WSL2默认会动态使用Windows可用内存如果没做限制free看到的内存可能接近宿主机全部内存这正常后面可以用.wslconfig限制。如果你的系统是Windows 11并且WSL版本较新此时还可以测试一下图形程序支持WSLgsudo apt install -y x11-apps xeyes能弹出窗口就说明WSLg的GUI支持正常。不过这只是验证实际开发中我很少在WSL里跑图形软件日常还是以终端和VS Code为主。4. 配置清单换源、常用工具、资源限制与文件互访4.1 apt切换到国内镜像源WSL里的Ubuntu默认用的是Ubuntu官方软件源服务器在国外apt update经常慢得让人怀疑人生。我建议安装完第一件事就是把apt源切换到国内镜像源这是提升后续所有安装体验的关键一步。Ubuntu 24.04及以后版本改了软件源配置方式从单文件/etc/apt/sources.list改成了deb822格式的/etc/apt/sources.list.d/ubuntu.sources。我先备份再替换sudo cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak sudo sed -i s|http://archive.ubuntu.com/ubuntu|https://mirrors.tuna.tsinghua.edu.cn/ubuntu|g /etc/apt/sources.list.d/ubuntu.sources sudo sed -i s|http://security.ubuntu.com/ubuntu|https://mirrors.tuna.tsinghua.edu.cn/ubuntu|g /etc/apt/sources.list.d/ubuntu.sources sudo apt update如果你用的是Ubuntu 22.04及更早版本配置路径是/etc/apt/sources.list命令换成对应路径即可。除了清华镜像源阿里云镜像源mirrors.aliyun.com也是稳妥的选择选一个用就行不要混合配多个。这里有个小提醒sed替换只处理了http://archive.ubuntu.com和http://security.ubuntu.com两种情况如果你的sources文件里还有http://ports.ubuntu.com之类的内容需要手动打开文件检查一遍把域名换成镜像站对应路径。4.2 常用开发工具的推荐安装顺序换完源之后我推荐的安装顺序是先装基础编译工具链再装版本管理工具和运行环境最后按项目需求装语言运行时。sudo apt update sudo apt upgrade -y sudo apt install -y build-essential git curl wget zip unzipbuild-essential包含gcc、g、make等编译工具很多软件安装时要现场编译这个包不装后面会反复踩坑。git是开发环境标配curl和wget用于下载zip和unzip处理压缩包。然后是编程语言运行时。我的建议是Python用系统中自带的python3即可但要注意WSL里的Ubuntu默认不带python-is-python3执行python会提示命令不存在。装一下这个包能省去很多脚本里python3和python分不清的烦恼sudo apt install -y python3 python3-pip python-is-python3Node.js则优先用nvm管理版本直接apt install nodejs装的版本往往偏旧而且切版本不方便。安装nvm用官方脚本装完之后新开终端就能用node和npm。MySQL、Redis这类中间件我一般直接sudo apt install -y mysql-server redis-serverWSL里跑单机开发环境完全够用。最后我强烈建议装一下zsh并配上oh-my-zsh。虽然bash够用但zsh的补全和主题确实提升终端幸福感装命令是sudo apt install -y zsh然后从oh-my-zsh官方仓库拉安装脚本装完chsh -s $(which zsh)把默认shell切过去重开终端生效。4.3 用.wslconfig控制内存、CPU与网络模式WSL2默认内存策略是动态分配宿主机内存够用就不管但如果你在WSL里跑编译任务或者多个容器内存占用会快速膨胀把Windows卡到鼠标飘。我建议在Windows用户目录下创建一个.wslconfig文件显式限制WSL2的资源使用[wsl2] memory8GB processors4 swap2GB networkingModemirroredmemory是WSL2可用的最大内存processors是可用CPU核心数swap是交换分区大小。networkingModemirrored是WSL 2.0.0之后引入的镜像网络模式开启后Windows和WSL共享同一套网络接口访问WSL里的服务不用再做任何转发对本地联调特别友好。修改完.wslconfig不会立即生效需要完全重启WSLwsl --shutdown然后重新进入WSL用free -h验证内存限制用cat /proc/net/dev查看网络模式变化。注意networkingModemirrored需要Windows 11 22H2以上版本如果你的系统不支持配置文件里不要写这一行默认的NAT模式配合Windows对localhost的自动转发也够用了。4.4 Windows和WSL双向文件互访WSL和Windows的文件互访是日常使用频率最高的能力但用法的方向感很重要用反了会明显变慢。在WSL里访问Windows文件路径挂在/mnt下。比如访问C盘桌面就是/mnt/c/Users/你的Windows用户名/Desktop。注意这里牵涉到9P文件系统转换读写比Linux原生文件系统慢一些所以项目代码、依赖包这类高频IO文件一定放在Linux文件系统内部也就是你的家目录/home/用户名下。Windows侧需要编辑WSL里的文件时在资源管理器地址栏输入\\wsl$\Ubuntu-24.04\home\用户名就能像操作本地目录一样编辑VS Code也推荐通过这种方式打开远程项目。反过来在Windows命令行里也可以直接调用Linux命令因为WSL默认开启了互操作。比如在PowerShell里执行wsl ls -la就能直接列出当前目录的Linux视角内容。这个能力让很多Windows批处理脚本可以直接调用Linux工具比如数据预处理脚本里用wsl jq解析JSON比在PowerShell里写原生命令省事得多。有一个容易忽略的坑WSL里通过/mnt/d访问移动硬盘这类热插拔设备时如果Windows侧没有正常卸载WSL访问可能报设备占用错误。这种情况下先在Windows里安全弹出设备再在WSL里访问。5. 高频翻车现场装不上、下载慢、离线安装与数据迁移5.1 报错0x80370102和0x80070003的排查链路我见过的WSL安装故障里出现频率最高的是两个错误码0x80370102和0x80070003。0x80370102这个报错基本等于在说虚拟化没就绪。可能的原因有两个一是BIOS里的虚拟化开关被关掉了二是Windows的虚拟机平台功能没正确启用。排查链路是先打开任务管理器确认CPU一栏虚拟化: 已启用如果是已禁用进BIOS打开VT-x/SVM如果任务管理器显示已启用但WSL还是报这个错用之前提到的两个dism命令重新启用功能然后重启。0x80070003常见于系统找不到指定路径。这个报错多数出现在Windows功能还没完全启用就急着安装发行版的时候。解决办法确认所有需要的Windows功能都已启用并重启然后执行wsl --update wsl --install -d Ubuntu-24.04还要注意一种特殊情况如果你用的是Windows Server或某些精简版系统商店可能被裁剪掉了wsl --install可能找不到发行版下载源。这种情况下直接走5.3节的离线安装方案最稳。5.2 wsl --install下载太慢的真实原因和破解方法wsl --install太慢是搜索热词我在实际帮人排查时发现大部分情况不是卡死而是真的在下载只是下载源是微软的海外服务器在国内网络环境下速度确实不理想。判断它到底是在下载还是卡死可以开着任务管理器观察网络活动或者查看磁盘占用如果有持续的网络或磁盘IO就是还在跑。针对下载慢我实测有效的方法按推荐顺序排修改DNS为公共DNS。Windows的DNS如果解析到距离较远的CDN节点下载确实会慢。我习惯在网络适配器属性里把DNS改成223.5.5.5阿里公共DNS或114.114.114.114改完执行ipconfig /flushdns刷新缓存。手动下载WSL2内核更新包。如果你的安装卡在内核下载阶段可以直接用浏览器访问WSL内核的官方直链地址微软云的存储地址下载完成后双击安装。我一般用IDM这类下载工具拉这个文件速度比命令行稳定很多装完再执行wsl --version看内核版本是否正常。如果卡在发行版下载阶段可以打开Microsoft Store搜Ubuntu从商店页面里点获取或安装有时候商店的下载通道比命令行拉镜像更快。装完后WSL会自动识别商店里已安装的发行版。网络环境允许的话换一个网络重试。我在办公室遇到WSL安装卡住切到手机热点后往往就顺利通过了这个现象说明问题出在特定网络到微软服务器的链路质量上和命令本身没关系。以上方法都不需要任何额外工具也符合正常的网络排查流程。核心思路是能改通道就改通道能换网络就换网络实在不行还有离线安装兜底。5.3 离线环境安装WSL的两种可落地做法有些内网开发环境不能直连外网或者外网下载实在无解这时候就需要离线安装。我实践中验证过两种做法都能落地。第一种是手动下载发行版的安装包appx格式然后在目标机器上安装。在能联网的电脑上通过浏览器打开微软商店中对应Ubuntu发行版的页面获取到appx或msixbundle格式的安装包文件把它拷贝到目标机器后在管理员PowerShell里执行Add-AppxPackage -Path 下载好的Ubuntu安装包路径.appx装完后需要手动注册到WSLwsl --install --no-distribution wsl --update这一步主要是把WSL运行时本身准备好如果系统已经能跑WSL命令就直接执行wsl --version确认内核没问题然后就可以进入Ubuntu了。第二种是更通用的export/import方式。它尤其适合内网批量部署先在任意一台已经装好Ubuntu的电脑上导出一个完整的文件系统快照然后拷贝到内网机器导入。在源机器上执行wsl --export Ubuntu-24.04 D:\backup\ubuntu.tar在目标机器已装好WSL但没有发行版上执行wsl --import Ubuntu-24.04 D:\WSL\Ubuntu-24.04 D:\backup\ubuntu.tar --version 2导入后的Ubuntu默认会以root身份登录如果想恢复普通用户登录进入系统后编辑/etc/wsl.conf[user] default你的用户名保存后执行wsl --shutdown再重进就会用普通用户身份登录。需要注意的是这种方式导入的是文件系统快照源机器上安装过的软件会一并带过来所以它非常适合作为内网环境标准开发镜像的分发方案。5.4 备份迁移与彻底重装export/import/unregister既然提到了export/import顺便把备份迁移的实际用法说透。WSL整个文件系统就是一张tar包这意味着备份和迁移异常简单。我一般每月会导出一次关键开发环境wsl --export Ubuntu-24.04 D:\backup\ubuntu-2025-$(Get-Date -Format yyyyMMdd).tar重装系统的流程就是导出tar包重装后安装WSL本体再执行wsl --import导入最后在/etc/wsl.conf里恢复默认用户。整个过程比重新安装一遍所有软件快太多了。彻底卸载某个发行版用unregisterwsl --unregister Ubuntu-24.04这个命令会删除该发行版的所有数据和配置执行前确认你已经做好了导出备份。如果你想重置整个WSL环境把几个发行版unregister掉再重新安装比在系统设置里折腾快速得多。还有一个常见场景WSL里的磁盘空间越来越大根分区满了。WSL2使用虚拟磁盘文件空间不会自动缩回。如果你通过export/import把环境导出一遍再重新导入虚拟磁盘会被重新压缩这是最省力的瘦身方法。6. 装完还不够把WSL接进VS Code、Docker与日常开发流6.1 VS Code Remote-WSL的配置WSL配上VS Code体验上基本等于一个原生Linux编辑器。前提是在Windows侧的VS Code里安装官方扩展WSL。装好后在WSL终端里进入项目目录执行code .VS Code会自动以WSL远程模式打开当前目录左下角会显示类似WSL: Ubuntu-24.04的连接状态。这时候VS Code内部的终端就是WSL里的shell所有文件操作都发生在Linux文件系统内插件和扩展也会安装在WSL侧性能和本地编辑没有任何区别。我在实际使用中的体会是保持一个固定项目目录在Linux家目录下用VS Code连进去写代码比通过/mnt/c访问Windows目录顺畅很多尤其是npm、pip这类会产生大量小文件依赖的工具IO差异非常明显。日常开发流变成WSL里起后端服务VS Code里调试Windows浏览器访问localhost看效果整个过程没有任何一个环节需要切环境。6.2 Docker Desktop的WSL2后端很多人装Docker桌面版是为了Windows容器但如果你在WSL2里做开发更合理的做法是让Docker Desktop使用WSL2后端这样Windows和WSL可以共享同一个Docker引擎。安装Docker Desktop后在Settings的Resources里找到WSL Integration勾选你需要的发行版。之后在WSL终端里直接执行docker ps就能连上Docker Desktop托管的引擎不需要在WSL里再装一套docker服务。如果你的目标是一个纯Linux的Docker环境也有另一种路线直接在WSL里的Ubuntu中安装docker-engine用systemd来管理。新版WSL默认开启了systemd支持在/etc/wsl.conf里加上[boot] systemdtrue然后就可以用systemctl管理服务。这个方案适合不想装Docker Desktop、想完全在Linux环境里复现生产部署的场景。两条路线都能跑区别只是Docker Engine的托管方不同选一条长期用就行别来回横跳。6.3 Windows Terminal与GUI应用的体验细节终端我推荐直接用Windows Terminal装好WSL发行版后下拉菜单会自动列出Ubuntu选中即可进入不用任何额外配置。给每个发行版设置不同的配色和背景远看不会开错标签页这个小习惯挺实用。如果确实需要在WSL里跑GUI程序Windows 11的WSLg可以原生显示Linux图形应用像前面验证用的xeyes、GIMP这类工具直接运行就能弹出窗口。在Windows 10上则要自行配置X Server转发体验不如Windows 11省心。日常使用中还有一个实用细节剪贴板是互通的。在WSL里复制的内容可以直接在Windows粘贴小技巧是从WSL里用clip.exe管道输出Windows剪贴板比如cat ~/.ssh/id_rsa.pub | clip.exe直接把公钥复制到Windows剪贴板。最后分享一个我自己踩过几次坑之后的习惯每次大版本更新或换机器我都会先wsl --export导出一份环境包再开始折腾新的配置。WSL这个环境虽然重装很快但真正值钱的是已经装好、调好的那一整套工具链和项目依赖有tar包在手任何时候都敢放手去试新方案。WSL最吸引我的地方就是这种随时能推倒重来又随时能恢复原样的底气。
返回列表